Created
April 30, 2018 22:11
-
-
Save AMcManigal/b9932f18bd98ba6e2316a1b566321b62 to your computer and use it in GitHub Desktop.
Example OAS 3.0
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
openapi: "3.0.0" | |
info: | |
version: 1.0.0 | |
title: Swagger Petstore | |
license: | |
name: MIT | |
servers: | |
- url: http://petstore.swagger.io/{version} | |
variables: | |
version: | |
enum: | |
- v1 | |
- v2 | |
default: v1 | |
paths: | |
/pets: | |
get: | |
summary: List all pets | |
operationId: listPets | |
tags: | |
- pets | |
parameters: | |
- name: page | |
in: query | |
schema: | |
type: integer | |
format: int32 | |
default: 1 | |
- name: limit | |
in: query | |
description: How many items to return at one time (max 100) | |
required: true | |
schema: | |
type: integer | |
format: int32 | |
nullable: true | |
- name: search | |
in: query | |
description: Search query | |
schema: | |
type: string | |
default: "" | |
allowEmptyValue: true | |
- name: ids | |
in: query | |
description: Filter pets with Ids | |
schema: | |
type: array | |
items: | |
type: integer | |
format: int32 | |
- name: tags | |
in: query | |
description: Filter pets with tags | |
schema: | |
type: array | |
items: | |
$ref: "#/components/schemas/Tag" | |
explode: false | |
responses: | |
'200': | |
description: An paged array of pets | |
headers: | |
x-next: | |
description: A link to the next page of responses | |
schema: | |
type: string | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PetsData" | |
post: | |
summary: Create a pet | |
operationId: createPets | |
tags: | |
- pets | |
requestBody: | |
required: true | |
content: | |
application/json: | |
schema: | |
$ref: '#/components/schemas/PetCreate' | |
responses: | |
'200': | |
description: Pet Created Response | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PetData" | |
'201': | |
description: Null response | |
default: | |
$ref: "#/components/responses/ErrorResponse" | |
/pets/{petId}: | |
get: | |
summary: Info for a specific pet | |
operationId: showPetById | |
tags: | |
- pets | |
parameters: | |
- name: petId | |
in: path | |
required: true | |
description: The id of the pet to retrieve | |
schema: | |
type: integer | |
format: int64 | |
responses: | |
'200': | |
description: Expected response to a valid request | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/PetData" | |
default: | |
$ref: "#/components/responses/ErrorResponse" | |
/tags: | |
get: | |
summary: List all tags | |
operationId: listTags | |
tags: | |
- tags | |
responses: | |
'200': | |
description: Expected response to a valid request | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/TagList" | |
default: | |
$ref: "#/components/responses/ErrorResponse" | |
components: | |
schemas: | |
Address: | |
type: object | |
x-model: Address | |
required: | |
- city | |
properties: | |
street: | |
type: string | |
city: | |
type: string | |
Tag: | |
type: string | |
enum: | |
- cats | |
- dogs | |
- birds | |
Position: | |
type: integer | |
enum: | |
- 1 | |
- 2 | |
- 3 | |
Pet: | |
type: object | |
x-model: Pet | |
allOf: | |
- $ref: "#/components/schemas/PetCreate" | |
required: | |
- id | |
properties: | |
id: | |
type: integer | |
format: int64 | |
PetCreate: | |
x-model: PetCreate | |
allOf: | |
- $ref: "#/components/schemas/PetCreatePartOne" | |
- $ref: "#/components/schemas/PetCreatePartTwo" | |
PetCreatePartOne: | |
type: object | |
x-model: PetCreatePartOne | |
required: | |
- name | |
properties: | |
name: | |
type: string | |
tag: | |
$ref: "#/components/schemas/Tag" | |
address: | |
$ref: "#/components/schemas/Address" | |
PetCreatePartTwo: | |
type: object | |
x-model: PetCreatePartTwo | |
properties: | |
position: | |
$ref: "#/components/schemas/Position" | |
healthy: | |
type: boolean | |
healthSigns: | |
type: array | |
items: | |
anyOf: | |
- $ref: '#/components/schemas/FreshBreath' | |
- $ref: '#/components/schemas/ShinyCoat' | |
- $ref: '#/components/schemas/EyesBright' | |
animalType: | |
oneOf: | |
- $ref: '#/components/schemas/MammalDetails' | |
- $ref: '#/components/schemas/AvianDetails' | |
Pets: | |
type: array | |
items: | |
$ref: "#/components/schemas/Pet" | |
PetsData: | |
type: object | |
required: | |
- data | |
properties: | |
data: | |
$ref: "#/components/schemas/Pets" | |
PetData: | |
type: object | |
required: | |
- data | |
properties: | |
data: | |
$ref: "#/components/schemas/Pet" | |
TagList: | |
type: array | |
items: | |
$ref: "#/components/schemas/Tag" | |
MammalDetails: | |
type: object | |
properties: | |
breed: | |
type: string | |
AvianDetails: | |
type: object | |
properties: | |
species: | |
type: string | |
FreshBreath: | |
type: object | |
properties: | |
freshBreath: | |
type: boolean | |
ShinyCoat: | |
type: object | |
properties: | |
shinyCoat: | |
type: boolean | |
EyesBright: | |
type: object | |
properties: | |
eyesBright: | |
type: boolean | |
Error: | |
type: object | |
required: | |
- code | |
- message | |
properties: | |
code: | |
type: integer | |
format: int32 | |
message: | |
type: string | |
ExtendedError: | |
allOf: | |
- $ref: "#/components/schemas/Error" | |
- type: object | |
required: | |
- rootCause | |
properties: | |
rootCause: | |
type: string | |
responses: | |
ErrorResponse: | |
description: unexpected error | |
content: | |
application/json: | |
schema: | |
$ref: "#/components/schemas/ExtendedError" | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment