Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation
The developer of this repository has not created any items for sale yet. Need a bug fixed? Help with integration? A different license? Create a request here:
A simple, quick, cross-platform API mock server that returns examples specified in an API description document. Features include:
examplesor generates examples from
localhostout of the box
--add-serverflag, in conjunction with
--validate-server, to dynamically include more servers in the validation logic
Usage is simple:
# Load from a local file apisprout my-api.yaml
Validate server name and use base path
apisprout --validate-server my-api.yaml
Dynamically Include a new server / path in the validation
apisprout --add-server http://localhost:8080/mock --validate-server my-api.yaml
Load from a URL
A hosted API Sprout Docker image is provided that makes it easy to deploy mock servers or run locally. For example:
docker pull danielgtaylor/apisprout docker run -p 8000:8000 danielgtaylor/apisprout http://example.com/my-api.yaml
Configuration can be passed via environment variables, e.g. setting
SPROUT_VALIDATE_REQUEST=1, or by passing commandline flags. It is also possible to use a local API description file via Docker Volumes:
# Remember to put the full path to local archive YAML in -v docker run -p 8000:8000 -v $FULLPATH/localfile.yaml:/api.yaml danielgtaylor/apisprout /api.yaml
Download the appropriate binary from the releases page.
Alternatively, you can use
go get github.com/danielgtaylor/apisprout
If your API spec is loaded from a remote URL, you can live-reload it by hitting the
A simple endpoint which returns status code
200is available at
/__health. This endpoint successfully returns
--validate-serveris turned on, and the endpoint is being accessed from a non-validated host.
Contributions are very welcome. Please open a tracking issue or pull request and we can work to get things merged in.
The following describes the steps to make a new release of API Sprout.
CHANGELOG.mdto describe changes.
git tag -a -m 'Tagging x.y.z release' vx.y.z.
Copyright © 2018-2019 Daniel G. Taylor