
Security News
Open Source Maintainers Demand Ability to Block Copilot-Generated Issues and PRs
Open source maintainers are urging GitHub to let them block Copilot from submitting AI-generated issues and pull requests to their repositories.
open-api-mocker
Advanced tools
An API mocker based in the OpenAPI 3.0 specification.
npm i -g open-api-mocker
open-api-mocker -s my-schema.json -w
open-api-mocker --help # To prompt every available setting.
docker run -v "$PWD/myschema.json:/app/schema.json" -p "5000:5000" jormaechea/open-api-mocker
Or to run an specific version
docker run -v "$PWD/myschema.json:/app/schema.json" -p "5000:5000" jormaechea/open-api-mocker:X.Y.Z`
You can set any parameter when running inside a docker container
docker run -v "$PWD/myschema.json:/app/schema.json" -p "3000:3000" jormaechea/open-api-mocker:X.Y.Z -s /app/schema.json -p 3000`
Prefer: statusCode=XXX
or Prefer: example=name
The OpenAPI specification allows custom properties to be added to an API definition in the form of x-*. OpenAPI Mocker supports the use of two custom extensions to allow data to be randomised which should allow for more realistic looking data when developing a UI against a mock API for instance.
The x-faker extension is valid for use on properties that have a primitive type (e.g. string
/integer
, etc.)
and can be used within an API definition to use one or more methods from the excellent
faker library for generating random data.
Given the following API definition:
openapi: '3.0.2'
info:
title: Cats
version: '1.0'
servers:
- url: https://api.cats.test/v1
paths:
/cat:
get:
responses:
'200':
description: OK
content:
application/json:
schema:
type: object
properties:
firstName:
type: string
x-faker: name.firstName
lastName:
type: string
x-faker: name.lastName
fullName:
type: string
x-faker: '{{name.firstName}} {{name.lastName}}'
age:
type: string
x-faker: 'random.number({ "min": 1, "max": 20 })'
A JSON response similar to the following would be produced:
{
"firstName": "Ted",
"lastName": "Kozey",
"fullName": "Herbert Lowe",
"age": 12
}
The x-faker extension accepts values in 3 forms:
random.uuid
random.number({ "max": 100 })
My name is {{name.firstName}} {{name.lastName}}
NOTE: To avoid new fake data from being generated on every call, up to 10 responses per endpoint are cached based on the incoming query string, request body and headers.
The x-count extension has effect only when used on an array
type property.
If encountered, OpenAPI Mocker will return an array with the given number of elements instead of the default of an
array with a single item.
For example, the following API definition:
openapi: '3.0.2'
info:
title: Cats
version: '1.0'
servers:
- url: https://api.cats.test/v1
paths:
/cat:
get:
responses:
'200':
description: OK
content:
application/json:
schema:
type: array
x-count: 5
items:
type: string
Will produce the following response:
[
"string",
"string",
"string",
"string",
"string"
]
See the advanced usage docs to extend or build your own app upon OpenAPI Mocker.
Simply run npm t
Issues and PRs are welcome.
[2.0.0] - 2023-05-30
@faker-js/faker@8
instead of old and nuked faker
BREAKING CHANGE (See docs for migration) (#63)x-faker
property now has priority over example
when generating responses BREAKING CHANGE (#59)FAQs
A mock server based in Open API Specification
The npm package open-api-mocker receives a total of 1,596 weekly downloads. As such, open-api-mocker popularity was classified as popular.
We found that open-api-mocker demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Open source maintainers are urging GitHub to let them block Copilot from submitting AI-generated issues and pull requests to their repositories.
Research
Security News
Malicious Koishi plugin silently exfiltrates messages with hex strings to a hardcoded QQ account, exposing secrets in chatbots across platforms.
Research
Security News
Malicious PyPI checkers validate stolen emails against TikTok and Instagram APIs, enabling targeted account attacks and dark web credential sales.