MockMaker is a customizable service that allows you to create a mock server on the fly. Endpoints are available to curate the expected response using curl or equivalent commands . The API was built with automated testing in mind and allows easy setup, verification, and tear down of tests.
The three main testing supported are:
- Return a static response
- Return a specific HTTP status code. Example, HTTP 404, 500, or even HTTP 302 with redirect
- Return a response after a specified delay. Example, pause for 1 second before returning a response.
Once the endpoint is configured, any application can utilize the endpoints to receive the expected responses.
REST endpoint | Description |
---|---|
POST /mockmaker/add/{endpoint name} |
Add a new endpoint. The body of the request will be the response returned by the mock endpoint. |
POST /mockmaker/http/{code}/{endpoint name} |
Returns a HTTP status code. For a HTTP 302, a redirect url can be specified. |
POST /mockmaker/delay/{timeout ms}/{endpoint name} |
Creates a new endpoint that will have a forced delay in all responses. |
Once the configuration of the mock endpoints are created, the application can now hit that endpoint directly. All method types are supported.
POST /mockendpoint
GET /mockendpoint
Note: mockmaker
endpoint is reserved to manage the MockMaker server. Please see the Management Endpoints below.
REST endpoint | Description |
---|---|
GET /mockmaker/count/{endpoint name} |
Count how many times the endpoint has been hit |
GET /mockmaker/lastpayload/{endpoint name} |
fetch the last payload that was sent to this endpoint by client |
GET /mockmaker/reset |
Resets all counters and endpoint configurations |
GET /mockmaker/health |
Returns OK if service is running |
GET /mockmaker/report |
Returns a report of all endpoint configuration and counters |
This project uses the following technologies to help build the source code and docs. Consult the following websites for instructions on how to install locally.
- docker: https://www.docker.com
- mkdocs: https://www.mkdocs.org
- nodejs: https://nodejs.org
Here are a list of things that may need to be addressed in the future. Check out the "CONTRIBUTING.md" document on how to contribute to this project. Please post us a message if there is a feature you would like to add.
- Should unexpected mock endpoints return HTTP 404 or a HTTP 200 with empty response?
- Possibly record the request body that was sent to each mock endpoint to the log.
- Add a way in the API to return the request message received for the mock endpoint.
- Passing in the location value for HTTP 302 could be improved to something more conventional.