When building and working with APIs, you often need to simulate the responses of the system before it has been fully completed. This is what we explore in this workshop - mocking up API structures quickly so they can be subjected to testing without having to create all the final service code.
Red hat combines and number of commercial and Open Source tools to cover each part of the API Design lifecycle. In this lab we'll be using the Microcks open source tool.
For the Developer track, we require a collaboration environment based on Git. For this purpose, we decided to use Gogs which is a hosted, lighter-weight version of Gitlab. This lab environment has created a user for you in Gogs.
Follow this instructions to set up the repository.
Open a browser window and navigate to gogs. Please ask your instructor if you need the link.
Log into Gogs using your designated user and password. Click on Sign In.
In the main page, click in the + sign in the right top corner to display the New menu. Click the New Migration option.
Fill in the information of the repository migration with the following values:
Click on Migrate Repository to fork the GitHub repo into Gogs.
Switch to branch
locations-api folder and click on the filename link Locations-UserX.json to open and review the file.
If everything is fine, click the Edit button to apply your personal user settings.
Replace UserX with your user number.
Commit the changes to gogs.
Click the RAW button to get the raw download version of the file.
Copy the browser tab URL. Store that URL address as you will use it in the next steps of the lab. The URL should look similar to the following:
If you feel more comfortable, you can also copy and paste the RAW button link from the previous step. Also, don't forget to update the X variable with your user number.
Open a browser window and navigate to microcks. Please ask your instructor if you need the link.
Log in into Microcks using your designated user and password.
You are now in the main Microcks page. Click the Importers button to access the Importers page.
Click the Create button to create your first job.
Create a New Job dialog, type in the following information replacing X with your user number. Click Next.
Click Next for the Authentication options.
Review the details and click on Create to create the job.
After your job is created, click on the Activate option.
Repeat the last step, but now select the Force Import option. This will start the synchronization job.
Refresh your window to get it to the latest state.
You will see 3 labels next to your Job. Click the Services label.
In the dialog you will see your service listed. Click on the Locations-UserX - 1.0.0. link.
Click Close to dismiss the dialog.
This is your new REST mock service based on the OpenAPI definition you just loaded to Microcks. Click on the arrow to expand the GET /locations operation.
You can check that the example we added to the definition in Lab 1 will be used to return the mock values. Scroll down, copy and save the Mocks URL, we will use that endpoint to test the REST mock service.
We now have a working REST mock service listening for requests. We will use an online cURL tool to test it.
Open a browser window and navigate to:
Copy and paste the Mock URL from earlier step. Remember to replace X with your user number. It should look similar to the link below.
Click the START YOUR CURL button.
The page will load the response information from the service. You will be able to see the RESPONSE HEADERS and the actual RESPONSE_BODY. This last part contains the examples we add during the design phase.
Congratulations! You have successfully configure a Microcks Job to create a REST mock service to test your API.
So, you want more? ...
In this lab you used Microcks to configure a REST mock service for the API definition you created in the previous lab. REST mock services allows you to simulate a REST API service when you are in a prototyping stage of your API program journey.
Microcks allows you to test a number of various responses for client application requests. When deploying API, micro-services or SOA practices at large scale, Microcks solves the problems of providing and sharing consistent documentation and mocks to the involved teams. It acts as a central repository and server that can be used for browsing but also by your Continuous Integration builds or pipelines.