Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation

License

NotificationsYou must be signed in to change notification settings

danielgtaylor/apisprout

Repository files navigation

API Sprout

Go Report CardBuild StatusGitHub tag (latest SemVer)Docker Pulls

A simple, quick, cross-platform API mock server that returns examples specified in an API description document. Features include:

  • OpenAPI 3.x support
    • Uses operationexamples or generates examples fromschema
  • Load from a URL or local file (auto reload with--watch)
  • CORS headers enabled by default
  • Accept header content negotiation
    • Example:Accept: application/*
  • Prefer header to select response to test specific cases
    • Example:Prefer: status=409
  • Server validation (enabled with--validate-server)
    • Validates scheme, hostname/port, and base path
    • Supportslocalhost out of the box
    • Use the--add-server flag, in conjunction with--validate-server, to dynamically include more servers in the validation logic
  • Request parameter & body validation (enabled with--validate-request)
  • Configuration via:
    • Files (/etc/apisprout/config.json|yaml)
    • Environment (prefixed withSPROUT_, e.g.SPROUT_VALIDATE_SERVER)
    • Commandline flags

Usage is simple:

# Load from a local fileapisprout my-api.yaml# Validate server name and use base pathapisprout --validate-server my-api.yaml# Dynamically Include a new server / path in the validationapisprout --add-server http://localhost:8080/mock --validate-server my-api.yaml# Load from a URLapisprout https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/api-with-examples.yaml

Docker Image

A hostedAPI Sprout Docker image is provided that makes it easy to deploy mock servers or run locally. For example:

docker pull danielgtaylor/apisproutdocker run -p 8000:8000 danielgtaylor/apisprout http://example.com/my-api.yaml

Configuration can be passed via environment variables, e.g. settingSPROUT_VALIDATE_REQUEST=1, or by passing commandline flags. It is also possible to use a local API description file viaDocker Volumes:

# Remember to put the full path to local archive YAML in -vdocker run -p 8000:8000 -v $FULLPATH/localfile.yaml:/api.yaml danielgtaylor/apisprout /api.yaml

Installation

Download the appropriate binary from thereleases page.

Alternatively, you can usego get:

go get github.com/danielgtaylor/apisprout

Extra Features

Remote Reload

If your API spec is loaded from a remote URL, you can live-reload it by hitting the/__reload endpoint.

Health Check

A simple endpoint which returns status code200 is available at/__health. This endpoint successfully returns200 even if--validate-server is turned on, and the endpoint is being accessed from a non-validated host.

Contributing

Contributions are very welcome. Please open a tracking issue or pull request and we can work to get things merged in.

Release Process

The following describes the steps to make a new release of API Sprout.

  1. Merge open PRs you want to release.
  2. Select a new semver version number (major/minor/patch depending on changes).
  3. UpdateCHANGELOG.md to describe changes.
  4. Create a commit for the release.
  5. Tag the commit withgit tag -a -m 'Tagging x.y.z release' vx.y.z.
  6. Build release binaries with./release.sh.
  7. Push the commit and tags.
  8. Upload the release binaries.

License

Copyright © 2018-2019 Daniel G. Taylor

http://dgt.mit-license.org/

About

Lightweight, blazing fast, cross-platform OpenAPI 3 mock server with validation

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages


[8]ページ先頭

©2009-2025 Movatter.jp