NASA: Pluto Matters!

    openapi-sampler
    TypeScript icon, indicating that this package has built-in type declarations

    1.3.0 • Public • Published

    openapi-sampler

    Travis build status Coverage Status Dependency Status devDependency Status

    Tool for generation samples based on OpenAPI payload/response schema

    Features

    • Deterministic (given a particular input, will always produce the same output)
    • Supports compound keywords: allOf, oneOf, anyOf, if/then/else
    • Supports additionalProperties with x-additionalPropertiesName
    • Uses const, examples, enum and default where possible - in this order
    • Good array support: supports contains, minItems, maxItems, and tuples (items as an array)
    • Supports minLength, maxLength, min, max, exclusiveMinimum, exclusiveMaximum
    • Supports the following string formats:
      • 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 --save
    

    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' }

    Install

    npm i openapi-sampler

    DownloadsWeekly Downloads

    368,142

    Version

    1.3.0

    License

    MIT

    Unpacked Size

    62.1 kB

    Total Files

    16

    Last publish

    Collaborators

    • romanhotsiy