@readme/oas-examples
Version:
A collection of example OpenAPI 3.x and Swagger 2.0 documents.
354 lines (353 loc) • 9.82 kB
JSON
{
"openapi": "3.0.3",
"info": {
"title": "Responses with various schema formats",
"description": "https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.3.md#schema-object",
"version": "1.0"
},
"servers": [
{
"url": "https://httpbin.org"
}
],
"paths": {
"/anything/top-level-array": {
"post": {
"summary": "Simple Array",
"description": "This payload is an array containing a simple flat object.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ArrayOfFlatObjects"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ArrayOfFlatObjects"
}
}
}
}
}
},
"put": {
"summary": "Array of Everything",
"description": "This payload is an array containing a complex payload of arrays, objects, and primitives.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ObjectOfEverything"
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ObjectOfEverything"
}
}
}
}
}
}
}
},
"/anything/top-level-object/simple": {
"post": {
"summary": "Simple Object",
"description": "This payload is an object comprised of simple flat objects.",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"nestedObject_1": {
"$ref": "#/components/schemas/FlatObject"
},
"nestedObject_2": {
"$ref": "#/components/schemas/FlatObject"
},
"nestedObject_3": {
"$ref": "#/components/schemas/FlatObject"
}
}
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"nestedObject": {
"$ref": "#/components/schemas/FlatObject"
}
}
}
}
}
}
}
}
},
"/top-level-object/of-everything": {
"post": {
"summary": "Object of Everything",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectOfEverything"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ObjectOfEverything"
}
}
}
}
}
}
},
"/multischema/of-everything": {
"post": {
"summary": "Multischema of Everything",
"requestBody": {
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MultischemaOfEverything"
}
}
}
},
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/MultischemaOfEverything"
}
}
}
}
}
}
}
},
"components": {
"schemas": {
"MultischemaOfEverything": {
"oneOf": [
{
"oneOf": [
{
"$ref": "#/components/schemas/ArrayOfObjectsOfObjectsAndArrays"
},
{
"type": "object",
"properties": {
"objEverything": {
"$ref": "#/components/schemas/ObjectOfEverything"
},
"flatObj": {
"$ref": "#/components/schemas/FlatObject"
}
}
}
]
},
{
"$ref": "#/components/schemas/ArrayOfPrimitives"
},
{
"$ref": "#/components/schemas/ArrayOfFlatObjects"
},
{
"$ref": "#/components/schemas/FlatObject"
},
{
"$ref": "#/components/schemas/ObjectOfEverything"
}
]
},
"ArrayOfObjectsOfObjectsAndArrays": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ObjectOfObjectsAndArrays"
}
},
"ObjectOfEverything": {
"type": "object",
"properties": {
"objectOfObjectsAndArrays": {
"description": "Object containing objects and arrays",
"$ref": "#/components/schemas/ObjectOfObjectsAndArrays"
},
"arrayOfObjectsOfObjectsAndArrays": {
"description": "Array of objects (containing objects and arrays)",
"$ref": "#/components/schemas/ArrayOfObjectsOfObjectsAndArrays"
},
"objectOfAdditionalProperties": {
"description": "Object containing an `additionalProperties` declaration that's comprised of a polymorphic `oneOf`.",
"$ref": "#/components/schemas/ObjectOfAdditionalPropertiesObjectPolymorphism"
},
"string": {
"type": "string"
}
}
},
"ArrayOfPrimitives": {
"type": "array",
"items": {
"type": "string"
}
},
"ArrayOfFlatObjects": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FlatObject"
}
},
"ObjectOfObjectsAndArrays": {
"type": "object",
"properties": {
"singleObject": {
"description": "Simple flat object",
"$ref": "#/components/schemas/FlatObject"
},
"arrayOfPrimitives": {
"description": "Array of primitives",
"$ref": "#/components/schemas/ArrayOfPrimitives"
},
"arrayOfObjects": {
"description": "Array of objects",
"$ref": "#/components/schemas/ArrayOfFlatObjects"
},
"primitive": {
"type": "string"
}
}
},
"ObjectOfAdditionalPropertiesObjectPolymorphism": {
"type": "object",
"additionalProperties": {
"type": "object",
"properties": {
"primitive": {
"type": "string"
},
"boolean": {
"type": "boolean"
},
"metadata": {
"nullable": true,
"oneOf": [
{
"title": " ",
"type": "object"
},
{
"title": "Flat object option 1",
"$ref": "#/components/schemas/FlatObject"
},
{
"title": "Flat object option 2",
"$ref": "#/components/schemas/FlatObject"
},
{
"title": "Flat object option 3",
"$ref": "#/components/schemas/FlatObject"
},
{
"title": "Object with depth",
"$ref": "#/components/schemas/ObjectWithArray"
}
]
}
}
}
},
"FlatObject": {
"type": "object",
"properties": {
"string": {
"type": "string"
},
"boolean": {
"type": "boolean"
},
"number": {
"type": "number"
}
}
},
"ObjectWithArray": {
"title": "Metadata Object",
"type": "object",
"description": "Metadata for defining additional objects related to your API",
"properties": {
"Array": {
"type": "array",
"items": {
"type": "object",
"properties": {
"inputs": {
"type": "array",
"items": {
"type": "object",
"properties": {
"input 1": {
"type": "string"
},
"input 2": {
"type": "string"
}
}
}
},
"nums": {
"type": "array",
"items": {
"type": "integer",
"enum": [0, 1, 2, 3]
}
}
}
}
}
}
}
}
}
}