Profile
Back to NewsBack
GitHub Trending 2 min
Reader Mode
Redocly/openapi-sampler: :capital_abcd: Tool for generation samples based on OpenAPI(fka Swagger) payload/response schema

Redocly/openapi-sampler: :capital_abcd: Tool for generation samples based on OpenAPI(fka Swagger) payload/response schema

14 hours ago

openapi-sampler

Travis build status</a> Coverage Status</a> Dependency Status</a> devDependency Status</a>

Tool for generation samples based on OpenAPI payload/response schema

Features

- email - idn-email - password - date-time - date - time - ipv4 - ipv6 - hostname - idn-hostname - uri - uri-reference - uri-template - iri - iri-reference - uuid - json-pointer - relative-json-pointer - regex
  • Infers schema type automatically following same rules as json-schema-faker
  • Support for $ref resolving
  • Has basic supports for JSON Schema draft 7 (thanks to @P0lip from @stoplightio for contributing)

Installation

Install using npm

npm install openapi-sampler

or using yarn

yarn add openapi-sampler

Then require it in your code:

var OpenAPISampler = require('openapi-sampler');

Usage

OpenAPISampler.sample(schema, [options], [spec])

  • schema (_required_) - object
An OpenAPI Schema Object or a JSON Schema Draft 7 document.
  • options (_optional_) - object
Available options: - skipNonRequired - boolean Don't include non-required object properties not specified in required property of the schema object - skipReadOnly - boolean Don't include readOnly object properties - skipWriteOnly - boolean Don't include writeOnly object properties - quiet - boolean Don't log console warning messages
  • spec - whole specification where the schema is taken from. Required only when schema may contain $ref. spec must not contain any external references

Example

const OpenAPISampler = require('.');
OpenAPISampler.sample({
  type: 'object',
  properties: {
    a: {type: 'integer', minimum: 10},
    b: {type: 'string', format: 'password', minLength: 10},
    c: {type: 'boolean', readOnly: true}
  }
}, {skipReadOnly: true});
// { a: 10, b: 'pa$$word_q' }
Chat with me