What is this?
YASMock(Yet Another Swagger Mocker) is a simple cli tool for generating a http server from a swagger contract. It works by extracting additional metadata from your swagger file and uses that to respond to requests. You can additionally pass custom generators to the cli that, in effect, controls how the mock server generates data.
How do i get it?
npm install yasmock -g
How do i use it?
Given the following v3 swagger snippet with responses definition
"responses":
Executing the following
$ yasmock serve --port=3000 --file=/path/to/swagger/file.json
will give you back
CLI Options
--port
- Port to bind mock server on (Omitting this cause the cli to pick a random free port to use)--file
- File containing swagger specification. Supports both YAML and JSON files.--url
- Url to download the swagger file, Supports both YAML and JSON responses.--include-optional
- Will include optional properties defined in the swagger file as part of the response. Defaults to false--generator
- Specifies a generator custom script.--prefer-example
- Uses the examples object as response--prefer-faker
- Uses fake data as response
How can I containerize my mock server?
Here is an example of what you dockerfile could look like.
The dockerfile
FROM node:8.9.4-slim ENV APP_ROOT = /usr/appARG MOCK_SERVER_PORTARG SWAGGER_URL WORKDIR ${APP_ROOT} COPY ./petstore.json ${APP_ROOT}/petstore.json RUN npm install yasmock --verbose EXPOSE ${MOCK_SERVER_PORT} CMD ["node_modules/.bin/yasmock", "--file", "./petstore.json"]
Build the container
docker build . -t petstore-mock
Run container
docker run petstore-mock