Mockintosh: Management UI
In this part we will talk about the management UI of Mockintosh.
Mockintosh comes with a easy to use remote management interface that's enabled if the management
field and its port
is specified in the configuration file.
The management UI consists of six tabs:
- HTTP Endpoints
- Asynchronous Actors
- Traffic Log
- Statistics
- Configuration
- Unhandled Requests
Swagger UI (OAS)
HTTP Endpoints tab shows you a Swagger UI that's automatically generated out of your config file.
The Swagger UI provides you a nice visualization of the endpoints that are described in the config file and enables
you to easily send requests to those endpoints via the "Try it out" functionality.
You can access the Open API Specification through the management API by visiting localhost:8080/oas
Traffic Log
Traffic logging is disabled by default. So let's enable it and do a GET
request to /users
and
another GET
request to /users/id
endpoints using the Swagger UI.
Then do a POST
request to /companies
endpoint by typing company name UP9
, address Palo Alto, CA
and a bunch of ones to phone
field.
{
"name": "UP9",
"address": "Palo Alto, CA",
"phone": 1111111111
}
As you can see that the all three HTTP requests that we have made just now, are logged with all of their details.
Statistics
Now let's open the "Statistics" tab. This tab gives you the information about how many requests are made into
the services and individual endpoints, average response time and the status code distribution.
You can retrieve the statistics through requesting to localhost:8080/stats
GET http://localhost:8080/stats
Configuration
"Configuration" tab let's you edit the content of the config file and all the resource files
that are referenced from the config file. So let's select templates/user.json.j2
from the dropdown and
add the createdAt
field to this template using the date
helper.
"createdAt": "{{ date.date('%Y-%m-%d %H:%M %f', -60) }}"
Now head over to the Swagger UI and make a request to /users/id
endpoint. As you can see
the newly added createdAt
field is present in the response.
Unhandled Requests
"Unhandled Requests" tab shows you the config template for the requests that are made to Mockintosh but unrecognized according to the config file and responded with 400
, 404
or 405
.
So let's request /employees
and /partners
paths from the "Service Two".
$ curl -X GET "http://service2.example.com:8082/employees?q=42" -v
$ curl -X POST "http://service2.example.com:8082/partners" --data 'param1=hello¶m2=world' -v
As you can see that we got a config template for the "Service Two" that contains the missing two endpoints.
Asynchronous Actors
The purpose of "Asynchronous Actors" tab, as a short explanation, is to check the consumed messages and triggering the asynchronous message producers. The tab is dedicated to asynchronous services. We will explain it in detail in a later video because it deserves to have its own video.
Support
You can view these examples in action in this video, and learn more at Mockintosh and UP9. Join our community Slack at up9.slack.com.