swagger-mock-parser
A parser for swagger object properties ,mock data returned by chancejs
changeLog
version 1.2.0
break change: object parser use JSON.stringfy to break circular references in schema
version 1.1.14
add useObjectKey option,set this true ,String parser will return the key name;
version 1.1.13
add fixedArray option,set this true ,array parser will return only one child array
version 1.1.12
detect and fix circular references in schema and return null object
version 1.1.8 ~ 1.1.11
add useExample option,set this true parser will return defined example first
version 1.1.7
break change: return string instead of throw error,objectParser canParse add "node.type == object" judge condition
usage
An example for mocking swagger definition schema
// basic usagevar Parser = var parser = ;var schema = definitionschema;return parser; // useExample optionvar Parser = // set useExample true will return every property's example which has already definedvar parser = useExample: true;var schema = type: 'string' example: 'will return example first'return parser; // useObjectKey optionvar Parser = // set useObjectKey true will return every Object property's name as the string value,but useExample is priorvar parser = useExample: true useObjectKey: true;var hasExampleSchema = type: 'object' properties: objectKeyName: type: 'string' example: 'useExample prior' var noExampleSchema = type: 'object' properties: objectKeyName: type: 'string' example: '' // this will return { objectKeyName: 'useExample prior' }return parser;// this will return { objectKeyName: 'objectKeyName' }return parser;
Specifying custom Chance options
Swagger specifies only a few primitive types; for scenarios where specific chance methods are needed, use the x-chance-type
field.
...definitions: NewPet: properties: name: type: string x-chance-type: name tag: type: string x-chance-type: guid
Most of the chance methods allow some fine-tuning of the returned data. For example, the integer method allows specification of minimum and maximum output values. These options can be configured in the Swagger YAML file with the x-chance-options
block:
...definitions: Pet: allOf: - $ref: '#/definitions/NewPet' - required: - id properties: id: type: integer format: int64 x-type-options: min: 1 max: 1000
A note on types:
All of the primitive types defined in the Swagger specification are supported except for file
and password
. Currently, the format
property is ignored; use x-chance-type
instead. The server will error on any request with a type other than one of the primitive types if there is no valid x-chance-type also defined.
Returning Fixed Values
Although not a chance method, support has been added for returning fixed values using x-chance-type: fixed
. Any value given for the custom tag x-type-value
will be returned; below is an example where an object is returned:
status: type: object x-chance-type: fixed x-type-value: type: 'adopted'