OpenAPI Mock Server

可生成随机数据的 OpenAPI 模拟服务器。「OpenAPI mock server with random data generation」

Github stars Tracking Chart

OpenAPI Mock Server

CI
GitHub release (latest by date)
Scrutinizer Code Quality
Maintainability
Test Coverage

OpenAPI API mock server with random data generation by specified schemas.

  • OpenAPI 3.x support.
  • Load specification from a local file or URL.
  • JSON and YAML format supported.
  • Generates fake response data by provided schemas or by examples.
  • Content negotiation by Accept header.
  • Can be used as standalone application (Linux and Windows) or can be run via Docker container.

Supported features

Feature Support status
generating xml response basic support (without xml tags)
generating json response supported
generation of basic types supported
generation of enums supported
generation of associative arrays supported
generation of combined types supported (without tag not and discriminator)
local reference resolving supported
remote reference resolving not supported
URL reference resolving not supported
validating request data not supported
force using custom response schema not supported (schema detected automatically)

Quick start

Download latest binary and run a server.

# runs a local server on port 8080
./openapi-mock serve --specification-url https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml

# to test that the server successfully ran
curl 'http://localhost:8080/v1/pets'

Alternatively, you can use Docker image.

# downloads an image
docker pull muonsoft/openapi-mock

# runs a docker container with exported port 8080
docker run -p 8080:8080 -e "OPENAPI_MOCK_SPECIFICATION_URL=https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml" --rm muonsoft/openapi-mock

# to test that the server successfully ran
curl 'http://localhost:8080/v1/pets'

Also, you can use Docker Compose. Example of docker-compose.yml

version: '3.0'

services:
  openapi_mock:
    container_name: openapi_mock
    image: muonsoft/openapi-mock
    environment:
      OPENAPI_MOCK_SPECIFICATION_URL: 'https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/examples/v3.0/petstore.yaml'
    ports:
      - "8080:8080"

To start up a container run command.

docker-compose up -d

If you want to reference a local file in docker compose:

  • you must first mount the host dir into container - ./openapi:/etc/openapi
  • only then can you reference it
version: '3.0'

services:
  openapi_mock:
    container_name: openapi_mock
    image: muonsoft/openapi-mock
    volumes:
    - ./openapi:/etc/openapi
    environment:
      OPENAPI_MOCK_SPECIFICATION_URL: '/etc/openapi/petstore.yaml'
    ports:
      - "8080:8080"

Usage guide

License

This project is licensed under the MIT License - see the LICENSE file for details.

Main metrics

Overview
Name With Ownermuonsoft/openapi-mock
Primary LanguageGo
Program languageDockerfile (Language Count: 2)
Platform
License:MIT License
所有者活动
Created At2018-08-21 18:16:27
Pushed At2024-06-27 19:33:08
Last Commit At2023-03-11 12:19:53
Release Count28
Last Release Namev0.3.9 (Posted on )
First Release Namev0.1.0 (Posted on )
用户参与
Stargazers Count505
Watchers Count8
Fork Count56
Commits Count335
Has Issues Enabled
Issues Count43
Issue Open Count19
Pull Requests Count36
Pull Requests Open Count2
Pull Requests Close Count14
项目设置
Has Wiki Enabled
Is Archived
Is Fork
Is Locked
Is Mirror
Is Private