All Projects → danielgtaylor → Apisprout

danielgtaylor / Apisprout

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

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Apisprout

Mockoon
Mockoon is the easiest and quickest way to run mock APIs locally. No remote deployment, no account required, open source.
Stars: ✭ 3,448 (+564.35%)
Mutual labels:  openapi, openapi3, hacktoberfest, mock-server
Uvicorn Gunicorn Fastapi Docker
Docker image with Uvicorn managed by Gunicorn for high-performance FastAPI web applications in Python 3.6 and above with performance auto-tuning. Optionally with Alpine Linux.
Stars: ✭ 1,014 (+95.38%)
Mutual labels:  openapi, openapi3, docker-image
Apispec
A pluggable API specification generator. Currently supports the OpenAPI Specification (f.k.a. the Swagger specification)..
Stars: ✭ 831 (+60.12%)
Mutual labels:  openapi, openapi3, hacktoberfest
Express Jsdoc Swagger
Swagger OpenAPI 3.x generator
Stars: ✭ 69 (-86.71%)
Mutual labels:  openapi, openapi3, hacktoberfest
Schemathesis
A modern API testing tool for web applications built with Open API and GraphQL specifications.
Stars: ✭ 768 (+47.98%)
Mutual labels:  openapi, openapi3, hacktoberfest
Openapi Generator
OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
Stars: ✭ 10,634 (+1948.94%)
Mutual labels:  openapi, openapi3, hacktoberfest
Openapi Spring Webflux Validator
🌱 A friendly kotlin library to validate API endpoints using an OpenApi 3.0 and Swagger 2.0 specification
Stars: ✭ 67 (-87.09%)
Mutual labels:  openapi, openapi3, hacktoberfest
Redoc
📘 OpenAPI/Swagger-generated API Reference Documentation
Stars: ✭ 15,935 (+2970.33%)
Mutual labels:  openapi, openapi3, hacktoberfest
Swagger Ui
Swagger UI is a collection of HTML, JavaScript, and CSS assets that dynamically generate beautiful documentation from a Swagger-compliant API.
Stars: ✭ 21,279 (+4000%)
Mutual labels:  openapi, openapi3, hacktoberfest
Openapi Mock
OpenAPI mock server with random data generation
Stars: ✭ 202 (-61.08%)
Mutual labels:  openapi, openapi3, mock-server
Prism
Turn any OpenAPI2/3 and Postman Collection file into an API server with mocking, transformations and validations.
Stars: ✭ 2,484 (+378.61%)
Mutual labels:  openapi, openapi3, mock-server
Php Openapi
Read and write OpenAPI yaml/json files and make the content accessible in PHP objects.
Stars: ✭ 268 (-48.36%)
Mutual labels:  openapi, openapi3, hacktoberfest
Express Openapi Validator
🦋 Auto-validates api requests, responses, and securities using ExpressJS and an OpenAPI 3.x specification
Stars: ✭ 436 (-15.99%)
Mutual labels:  openapi, openapi3, hacktoberfest
Loopback Next
LoopBack makes it easy to build modern API applications that require complex integrations.
Stars: ✭ 3,972 (+665.32%)
Mutual labels:  openapi, hacktoberfest
Docker Inbound Agent
Docker image for a Jenkins agent which can connect to Jenkins using TCP or Websocket protocols
Stars: ✭ 342 (-34.1%)
Mutual labels:  hacktoberfest, docker-image
Openapi To Postman
Plugin for converting OpenAPI 3.0 specs to the Postman Collection (v2) format
Stars: ✭ 365 (-29.67%)
Mutual labels:  openapi, openapi3
Create Openapi Repo
🤖 Generator for GH repo to help you manage the OpenAPI definition lifecycle
Stars: ✭ 513 (-1.16%)
Mutual labels:  openapi, openapi3
Pode
Pode is a Cross-Platform PowerShell web framework for creating REST APIs, Web Sites, and TCP/SMTP servers
Stars: ✭ 329 (-36.61%)
Mutual labels:  openapi, hacktoberfest
Dredd
Language-agnostic HTTP API Testing Tool
Stars: ✭ 3,770 (+626.4%)
Mutual labels:  openapi, openapi3
Mongo Seeding
The ultimate solution for populating your MongoDB database.
Stars: ✭ 375 (-27.75%)
Mutual labels:  hacktoberfest, docker-image
API Sprout

Go Report Card Build Status GitHub 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 operation examples or generates examples from schema
  • 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
    • Supports localhost 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 with SPROUT_, e.g. SPROUT_VALIDATE_SERVER)
    • Commandline flags

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
apisprout https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/api-with-examples.yaml

Docker Image

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

Installation

Download the appropriate binary from the releases page.

Alternatively, you can use go 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 code 200 is available at /__health. This endpoint successfully returns 200 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. Update CHANGELOG.md to describe changes.
  4. Create a commit for the release.
  5. Tag the commit with git 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/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].