Skip to main content

Swagger and Authentication Full Series - #47


Like what you see, support the channel.

Published: January 04, 2021


Estimated Reading Time
3 minutes
Video Duration
1:53:48 minutes

Become a Patreon to show support and get exclusive access to content: https://www.patreon.com/devdrawer

Now that we have looked at the custom PHP REST API, we need to create documentation. To do this, I will be using Swagger UI. In this tutorial, we go over how to install Swagger and Swagger PHP in order to dynamically populate your interactive documentation.

With Swagger, you can create documentation for your REST API that is detailed, useful and allows your developers to test in realtime.

Swagger UI is free and easy to get started with. So, let's install Swagger and start documenting our API. Now we will start building out the comments that will create the dynamic documentation the showcase the REST API usage.

This documentation is user-friendly and interactive so your developers can work directly with the API based on the needs of your code. This tutorial will give over the usage of OpenAPI GET, PUT, POST, and DELETE so you can label and use your API documentation correctly.

Now, let's take what we learned and use our API to create and remove pages within our SammyJS application.

A few weeks ago, we created a REST API driven application that uses SammyJS to create pages from a MySQL database. Today, we take what we did and add in the additional functionality from our CRUD API to build a function that automatically creates and removes SammyJS page templates.

Essentially, you can use this to build a front end website using AJAX and your REST API with one code base, no more needing to create page templates manually, let the API create your page templates for you.

Now, we learn how to add JWT tokenization to our RESTful API.

We use Firebase JWT to create and retrieve a simple token that can be used to validate users, external websites, and make your API more secure. We also turn on tokenization in our Swagger UI and allow users to generate a token that can be used to authorize our other routes using a GUI.

Finally, we will use AJAX to make a request to the API to secure a token that can be used to view the pages and header content. The token will be generated server-side and sent to our app to be stored within the browser session. This will ensure every hit to our API is from a secured source.

Individual Series Videos

1. Install Swagger UI Documentation for Your PHP RESTful API: https://youtu.be/JnjlQBWvDAE

2.Create REST API Documentation with Swagger UI using PHP: https://youtu.be/tF-_OJpsRmw

3. Create Pages in Applications using PHP REST API: https://youtu.be/9XX8TTNriqM

4. Add Security and JWT Tokenization to Your PHP REST API: https://youtu.be/t43DRY3Ee9w

5. Using AJAX to set REST API Tokens: https://youtu.be/afuiYQY9Eng

Applications Used

Visual Studio Code v1.43: https://code.visualstudio.com/

WAMP v3.2.0: http://www.wampserver.com/en/

Swagger UI: https://swagger.io/tools/swagger-ui/

Computer Hardware:

Windows 10 Pro: https://amzn.to/3q5TyZw (Amazon)

Samsung 500GB External SSD: https://amzn.to/2ViAAAF (Amazon)

Samsung 970 EVO Plus SSD 1TB - M.2 NVMe: https://amzn.to/36jDwDy (Amazon)

Rosewill Hive-750S R750W PSU: https://amzn.to/36jiDbs (Amazon)

Phanteks Eclipse Tempered Glass Case: https://amzn.to/39qou0B (Amazon)

MSI Arsenal Gaming AMD Ryzen Motherboard: https://amzn.to/36hpAKm (Amazon)

MSI Gaming GeForce RTX 2060 Super 8GB: https://amzn.to/36hMyRm (Amazon)

LG 34UM69G-B 34-Inch 21:9 UltraWide IPS Monitor: https://amzn.to/2HSRxyI (Amazon)

Corsair 64GB (4 x 16GB) DDR4 Memory: https://amzn.to/3mlmQkI (Amazon)

AMD Ryzen 7 2700X Processor: https://amzn.to/3qdQIBF (Amazon)

Dell XPS 15 9500 15.6" Laptop / Windows: https://amzn.to/3fKEz2w (Amazon)

Lenovo ThinkPad T15 15.6" Laptop / Linux: https://amzn.to/2Jnmn33 (Amazon)

Camera:

Fujifilm X-T3: https://amzn.to/3llKBb5 (Amazon)

Fujinon XF18-55mmF2.8-4: https://amzn.to/3mfTkNb (Amazon)

Audio:

Audio Technica AT2020: https://amzn.to/2VgxU6K (Amazon)

Blue Snowball iCE: https://amzn.to/3lo1jGC (Amazon)

DISCLAIMERS:

I am a participant in the Amazon Services LLC Associates Program, an affiliate advertising program designed to provide a means for us to earn fees by linking to Amazon.com and affiliated sites.