UNPKG

@readme/oas-examples

Version:

A collection of example OpenAPI 3.x and Swagger 2.0 documents.

249 lines (248 loc) 9.02 kB
{ "openapi": "3.0.3", "info": { "title": "Support for `additionalProperties` declarations", "description": "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#schema-object", "version": "1.0.0" }, "servers": [ { "url": "https://httpbin.org" } ], "paths": { "/post": { "post": { "summary": "Should allow additionalProperties in JSON schema", "requestBody": { "content": { "application/json": { "schema": { "type": "object", "properties": { "object with `additionalProperties: true`": { "type": "object", "additionalProperties": true }, "object with `additionalProperties: false` and no other properties": { "type": "object", "additionalProperties": false }, "object with `additionalProperties: { type: integer }`": { "type": "object", "additionalProperties": { "type": "integer" } }, "object with `additionalProperties: { type: object, properties: ... }`": { "type": "object", "additionalProperties": { "type": "object", "properties": { "code": { "type": "integer" }, "text": { "type": "string" } } } }, "object with `additionalProperties: { type: object, properties: ... }` and custom title": { "type": "object", "additionalProperties": { "type": "object", "properties": { "code": { "type": "integer" }, "text": { "type": "string" } }, "title": "This is a custom title" } }, "object with `additionalProperties: { type: array, items: { type: integer } }`": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "integer" } } }, "object with `additionalProperties: $ref, simple`": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ref" } }, "object with `additionalProperties: $ref, with $ref`": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ref-with-ref" } }, "object with `additionalProperties: anyOf` (polymorphic)": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ref" }, { "$ref": "#/components/schemas/ref-with-ref" } ] } }, "object with `additionalPropeties` within an allOf": { "description": "Technically this is not valid to the spec. The `additionalProperties` rejections should cancel out each others new field but we indicate we want this to work by enabling [json-schema-merge-allof](https://npm.im/json-schema-merge-allof)'s `ignoreAdditionalProperties` option", "allOf": [ { "type": "object", "additionalProperties": false, "properties": { "primitiveProperty": { "type": "string" } } }, { "type": "object", "additionalProperties": false, "properties": { "alt_primitiveProperty": { "type": "string" } } } ] } } } } } }, "responses": { "200": { "description": "OK", "content": { "application/json": { "schema": { "type": "object", "properties": { "object with `additionalProperties: true`": { "type": "object", "additionalProperties": true }, "object with `additionalProperties: { type: integer }`": { "type": "object", "additionalProperties": { "type": "integer" } }, "object with `additionalProperties: { type: object, properties: ... }`": { "type": "object", "additionalProperties": { "type": "object", "properties": { "code": { "type": "integer" }, "text": { "type": "string" } } } }, "object with `additionalProperties: { type: object, properties: ... }` and custom title": { "type": "object", "additionalProperties": { "type": "object", "properties": { "code": { "type": "integer" }, "text": { "type": "string" } }, "title": "This is a custom title" } }, "object with `additionalProperties: { type: array, items: { type: integer } }`": { "type": "object", "additionalProperties": { "type": "array", "items": { "type": "integer" } } }, "object with `additionalProperties: $ref, simple`": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ref" } }, "object with `additionalProperties: $ref, with $ref`": { "type": "object", "additionalProperties": { "$ref": "#/components/schemas/ref-with-ref" } }, "object with `additionalProperties: anyOf` (polymorphic)": { "type": "object", "additionalProperties": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ref" }, { "$ref": "#/components/schemas/ref-with-ref" } ] } } } } } } } } } } }, "components": { "schemas": { "ref": { "type": "integer" }, "ref-with-ref": { "type": "object", "properties": { "code": { "type": "integer" }, "text": { "type": "string" }, "array": { "type": "array", "items": { "$ref": "#/components/schemas/ref" } } } } } } }