I’m looking for a project/tool that is able to get swagger / openapi specifications file as a parameter and generate a mock server that can be controlled programmatically via a REST API interface.
For example – if my API contains the following endpoint: "POST /v1/create"
and I have a swagger specs that describe that API, I would like my mock server to be executed in a way similar to:
mock-server -f swagger.yaml -p 8080
While the server runs, It will be possible to interact with it’s own REST API (on some control interface via a different port) and change the behavior of the running swagger mock server – i.e: change response code, set response content etc’
I would like to use such mock-server as part of my system-tests suite to better verify my service behavior when interacting with other services – without the need to run those ‘real’ services.
I’m looking for something similar in spirit to Shopyify’s ToxiProxy (https://github.com/Shopify/toxiproxy) but with the above capabilities.
Thanks!
Eldad
2
Answers
I know I’m a bit late to the party on this one, but for future searchers, MockLab now supports auto-generation of mock APIs from an imported Swagger definition and Swaggerhub webhooks.
More details here:
https://www.mocklab.io/blog/mocklab-now-supports-swagger-and-swaggerhub/
I believe Specmatic should help you with this.
Specmatic works exactly this way. To start a mock server with an OpenAPI specification file we can run below command.
Here is the documentation.
This is also supported. Specmatic has a http interface to which you can post the request and response mappings / expectations. We call this dynamic mocks. Here is the documentation.
Here is a video on this.
Disclosure: I am lead dev and CTO at Specmatic