mirror of
https://github.com/LukeHagar/libopenapi.git
synced 2025-12-06 04:20:11 +00:00
I can't test that one line in the index, so this will do. Now to complete the document for what's changed.
877 lines
21 KiB
YAML
877 lines
21 KiB
YAML
---
|
|
swagger: '2.0'
|
|
x-pet: true
|
|
info:
|
|
description: 'This is a sample server Petstore server. You can find out more about
|
|
Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For
|
|
this sample, you can use the api key `special-key` to test the authorization filters.'
|
|
version: 1.0.6
|
|
title: Swagger Petstore
|
|
termsOfService: http://swagger.io/terms/
|
|
contact:
|
|
email: apiteam@swagger.io
|
|
license:
|
|
name: Apache 2.0
|
|
url: http://www.apache.org/licenses/LICENSE-2.0.html
|
|
host: petstore.swagger.io
|
|
basePath: "/v2"
|
|
parameters:
|
|
simpleParam:
|
|
in: query
|
|
name: simple
|
|
type: string
|
|
x-chicken: nuggets
|
|
security:
|
|
- global_auth:
|
|
- write:pets
|
|
- read:pets
|
|
tags:
|
|
- name: pet
|
|
description: Everything about your Pets
|
|
externalDocs:
|
|
description: Find out more
|
|
url: http://swagger.io
|
|
- name: store
|
|
description: Access to Petstore orders
|
|
- name: user
|
|
description: Operations about user
|
|
externalDocs:
|
|
description: Find out more about our store
|
|
url: http://swagger.io
|
|
schemes:
|
|
- https
|
|
- http
|
|
consumes:
|
|
- application/json
|
|
- text/xml
|
|
produces:
|
|
- application/json
|
|
paths:
|
|
x-minty: fresh
|
|
"/pet/{petId}/uploadImage":
|
|
x-potato: man
|
|
post:
|
|
schemes: [ http, https]
|
|
tags:
|
|
- pet
|
|
summary: uploads an image
|
|
description: also, uploads an image - but this time with more details.
|
|
operationId: uploadFile
|
|
externalDocs:
|
|
url: https://pb33f.io
|
|
consumes:
|
|
- multipart/form-data
|
|
produces:
|
|
- application/json
|
|
parameters:
|
|
- name: petId
|
|
in: path
|
|
description: ID of pet to update
|
|
required: true
|
|
type: integer
|
|
format: int64
|
|
exclusiveMaximum: true
|
|
exclusiveMinimum: true
|
|
maxLength: 2
|
|
minLength: 1
|
|
minimum: 1
|
|
maximum: 5
|
|
pattern: hi!
|
|
minItems: 1
|
|
maxItems: 20
|
|
uniqueItems: true
|
|
enum:
|
|
- hello
|
|
- there
|
|
default:
|
|
something: here
|
|
multipleOf: 2
|
|
- name: additionalMetadata
|
|
in: formData
|
|
description: Additional data to pass to server
|
|
required: false
|
|
type: string
|
|
allowEmptyValue: true
|
|
default: something
|
|
- name: file
|
|
in: formData
|
|
description: file to upload
|
|
required: false
|
|
type: file
|
|
default:
|
|
- one
|
|
- two
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/ApiResponse"
|
|
security:
|
|
- petstore_auth:
|
|
- write:pets
|
|
- read:pets
|
|
"/pet":
|
|
post:
|
|
tags:
|
|
- pet
|
|
summary: Add a new pet to the store
|
|
description: ''
|
|
operationId: addPet
|
|
consumes:
|
|
- application/json
|
|
- application/xml
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- in: body
|
|
name: body
|
|
description: Pet object that needs to be added to the store
|
|
required: true
|
|
schema:
|
|
"$ref": "#/definitions/Pet"
|
|
responses:
|
|
'405':
|
|
description: Invalid input
|
|
security:
|
|
- petstore_auth:
|
|
- write:pets
|
|
- read:pets
|
|
put:
|
|
tags:
|
|
- pet
|
|
summary: Update an existing pet
|
|
description: ''
|
|
operationId: updatePet
|
|
consumes:
|
|
- application/json
|
|
- application/xml
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- in: body
|
|
name: body
|
|
description: Pet object that needs to be added to the store
|
|
required: true
|
|
schema:
|
|
"$ref": "#/definitions/Pet"
|
|
responses:
|
|
'400':
|
|
description: Invalid ID supplied
|
|
'404':
|
|
description: Pet not found
|
|
'405':
|
|
description: Validation exception
|
|
security:
|
|
- petstore_auth:
|
|
- write:pets
|
|
- read:pets
|
|
"/pet/findByStatus":
|
|
get:
|
|
tags:
|
|
- pet
|
|
summary: Finds Pets by status
|
|
description: Multiple status values can be provided with comma separated strings
|
|
operationId: findPetsByStatus
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: status
|
|
in: query
|
|
description: Status values that need to be considered for filter
|
|
required: true
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- available
|
|
- pending
|
|
- sold
|
|
default: available
|
|
collectionFormat: multi
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
type: array
|
|
items:
|
|
"$ref": "#/definitions/Pet"
|
|
'400':
|
|
description: Invalid status value
|
|
security:
|
|
- petstore_auth:
|
|
- write:pets
|
|
- read:pets
|
|
"/pet/findByTags":
|
|
get:
|
|
tags:
|
|
- pet
|
|
summary: Finds Pets by tags
|
|
description: Multiple tags can be provided with comma separated strings. Use
|
|
tag1, tag2, tag3 for testing.
|
|
operationId: findPetsByTags
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: tags
|
|
in: query
|
|
description: Tags to filter by
|
|
required: true
|
|
type: array
|
|
items:
|
|
type: string
|
|
collectionFormat: multi
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
type: array
|
|
items:
|
|
"$ref": "#/definitions/Pet"
|
|
'400':
|
|
description: Invalid tag value
|
|
security:
|
|
- petstore_auth:
|
|
- write:pets
|
|
- read:pets
|
|
deprecated: true
|
|
"/pet/{petId}":
|
|
get:
|
|
tags:
|
|
- pet
|
|
summary: Find pet by ID
|
|
description: Returns a single pet
|
|
operationId: getPetById
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: petId
|
|
in: path
|
|
description: ID of pet to return
|
|
required: true
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/Pet"
|
|
'400':
|
|
description: Invalid ID supplied
|
|
'404':
|
|
description: Pet not found
|
|
security:
|
|
- api_key: []
|
|
post:
|
|
tags:
|
|
- pet
|
|
summary: Updates a pet in the store with form data
|
|
description: ''
|
|
operationId: updatePetWithForm
|
|
consumes:
|
|
- application/x-www-form-urlencoded
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: petId
|
|
in: path
|
|
description: ID of pet that needs to be updated
|
|
required: true
|
|
type: integer
|
|
format: int64
|
|
- name: name
|
|
in: formData
|
|
description: Updated name of the pet
|
|
required: false
|
|
type: string
|
|
- name: status
|
|
in: formData
|
|
description: Updated status of the pet
|
|
required: false
|
|
type: string
|
|
responses:
|
|
'405':
|
|
description: Invalid input
|
|
security:
|
|
- petstore_auth:
|
|
- write:pets
|
|
- read:pets
|
|
delete:
|
|
tags:
|
|
- pet
|
|
summary: Deletes a pet
|
|
description: ''
|
|
operationId: deletePet
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: api_key
|
|
in: header
|
|
required: false
|
|
type: string
|
|
- name: petId
|
|
in: path
|
|
description: Pet id to delete
|
|
required: true
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'400':
|
|
description: Invalid ID supplied
|
|
'404':
|
|
description: Pet not found
|
|
security:
|
|
- petstore_auth:
|
|
- write:pets
|
|
- read:pets
|
|
"/store/order":
|
|
post:
|
|
tags:
|
|
- store
|
|
summary: Place an order for a pet
|
|
description: ''
|
|
operationId: placeOrder
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- in: body
|
|
name: body
|
|
description: order placed for purchasing the pet
|
|
required: true
|
|
schema:
|
|
"$ref": "#/definitions/Order"
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/Order"
|
|
'400':
|
|
description: Invalid Order
|
|
"/store/order/{orderId}":
|
|
get:
|
|
tags:
|
|
- store
|
|
summary: Find purchase order by ID
|
|
description: For valid response try integer IDs with value >= 1 and <= 10. Other
|
|
values will generated exceptions
|
|
operationId: getOrderById
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: orderId
|
|
in: path
|
|
description: ID of pet that needs to be fetched
|
|
required: true
|
|
type: integer
|
|
maximum: 10
|
|
minimum: 1
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/Order"
|
|
'400':
|
|
description: Invalid ID supplied
|
|
'404':
|
|
description: Order not found
|
|
delete:
|
|
tags:
|
|
- store
|
|
summary: Delete purchase order by ID
|
|
description: For valid response try integer IDs with positive integer value.
|
|
Negative or non-integer values will generate API errors
|
|
operationId: deleteOrder
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: orderId
|
|
in: path
|
|
description: ID of the order that needs to be deleted
|
|
required: true
|
|
type: integer
|
|
minimum: 1
|
|
format: int64
|
|
responses:
|
|
'400':
|
|
description: Invalid ID supplied
|
|
'404':
|
|
description: Order not found
|
|
"/store/inventory":
|
|
get:
|
|
tags:
|
|
- store
|
|
summary: Returns pet inventories by status
|
|
description: Returns a map of status codes to quantities
|
|
operationId: getInventory
|
|
produces:
|
|
- application/json
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
type: object
|
|
additionalProperties:
|
|
type: integer
|
|
format: int32
|
|
security:
|
|
- api_key: []
|
|
"/user/createWithArray":
|
|
post:
|
|
tags:
|
|
- user
|
|
summary: Creates list of users with given input array
|
|
description: ''
|
|
operationId: createUsersWithArrayInput
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- in: body
|
|
name: body
|
|
description: List of user object
|
|
required: true
|
|
schema:
|
|
type: array
|
|
items:
|
|
"$ref": "#/definitions/User"
|
|
responses:
|
|
default:
|
|
description: successful operation
|
|
"/user/createWithList":
|
|
post:
|
|
tags:
|
|
- user
|
|
summary: Creates list of users with given input array
|
|
description: ''
|
|
operationId: createUsersWithListInput
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- in: body
|
|
name: body
|
|
description: List of user object
|
|
required: true
|
|
schema:
|
|
type: array
|
|
items:
|
|
"$ref": "#/definitions/User"
|
|
responses:
|
|
default:
|
|
description: successful operation
|
|
"/user/{username}":
|
|
get:
|
|
tags:
|
|
- user
|
|
summary: Get user by user name
|
|
description: ''
|
|
operationId: getUserByName
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
description: 'The name that needs to be fetched. Use user1 for testing. '
|
|
required: true
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
schema:
|
|
"$ref": "#/definitions/User"
|
|
'400':
|
|
description: Invalid username supplied
|
|
'404':
|
|
description: User not found
|
|
put:
|
|
tags:
|
|
- user
|
|
summary: Updated user
|
|
description: This can only be done by the logged in user.
|
|
operationId: updateUser
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
description: name that need to be updated
|
|
required: true
|
|
type: string
|
|
- in: body
|
|
name: body
|
|
description: Updated user object
|
|
required: true
|
|
schema:
|
|
"$ref": "#/definitions/User"
|
|
responses:
|
|
'400':
|
|
description: Invalid user supplied
|
|
'404':
|
|
description: User not found
|
|
delete:
|
|
tags:
|
|
- user
|
|
summary: Delete user
|
|
description: This can only be done by the logged in user.
|
|
operationId: deleteUser
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: username
|
|
in: path
|
|
description: The name that needs to be deleted
|
|
required: true
|
|
type: string
|
|
responses:
|
|
'400':
|
|
description: Invalid username supplied
|
|
'404':
|
|
description: User not found
|
|
"/user/login":
|
|
get:
|
|
tags:
|
|
- user
|
|
summary: Logs user into the system
|
|
description: ''
|
|
operationId: loginUser
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- name: username
|
|
in: query
|
|
description: The user name for login
|
|
required: true
|
|
type: string
|
|
- name: password
|
|
in: query
|
|
description: The password for login in clear text
|
|
required: true
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: successful operation
|
|
headers:
|
|
X-Expires-After:
|
|
type: string
|
|
format: date-time
|
|
description: date in UTC when token expires
|
|
X-Rate-Limit:
|
|
type: integer
|
|
format: int32
|
|
description: calls per hour allowed by the user
|
|
schema:
|
|
type: string
|
|
'400':
|
|
description: Invalid username/password supplied
|
|
"/user/logout":
|
|
get:
|
|
tags:
|
|
- user
|
|
summary: Logs out current logged in user session
|
|
description: ''
|
|
operationId: logoutUser
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters: []
|
|
responses:
|
|
default:
|
|
description: successful operation
|
|
"/user":
|
|
borked:
|
|
summary: not allowed
|
|
options:
|
|
summary: hola!
|
|
responses:
|
|
default:
|
|
description: hello there
|
|
delete:
|
|
summary: sup!
|
|
responses:
|
|
default:
|
|
description: hello there
|
|
head:
|
|
summary: yo!
|
|
responses:
|
|
default:
|
|
description: hello there
|
|
patch:
|
|
summary: hi!
|
|
responses:
|
|
default:
|
|
description: hello there
|
|
post:
|
|
tags:
|
|
- user
|
|
summary: Create user
|
|
description: This can only be done by the logged in user.
|
|
operationId: createUser
|
|
consumes:
|
|
- application/json
|
|
produces:
|
|
- application/json
|
|
- application/xml
|
|
parameters:
|
|
- in: body
|
|
name: body
|
|
description: Created user object
|
|
required: true
|
|
schema:
|
|
"$ref": "#/definitions/User"
|
|
responses:
|
|
default:
|
|
description: successful operation
|
|
"/ref":
|
|
$ref: "#/externalPaths/test"
|
|
securityDefinitions:
|
|
tokenKey:
|
|
description: this is a token key
|
|
type: oauth2
|
|
tokenUrl: https://petstore.swagger.io/oauth/token
|
|
flow: password
|
|
api_key:
|
|
description: this is an API key
|
|
type: apiKey
|
|
name: api_key
|
|
in: header
|
|
petstore_auth:
|
|
type: oauth2
|
|
authorizationUrl: https://petstore.swagger.io/oauth/authorize
|
|
flow: implicit
|
|
scopes:
|
|
read:pets: read your pets
|
|
write:pets: modify pets in your account
|
|
responses:
|
|
"200":
|
|
x-coffee: morning
|
|
description: OK
|
|
headers:
|
|
noHeader:
|
|
type: string
|
|
x-empty: true
|
|
items:
|
|
type: string
|
|
yourHeader:
|
|
type: string
|
|
default: yourHeader
|
|
items:
|
|
default: somethingSimple
|
|
ourHeader:
|
|
type: string
|
|
default:
|
|
funny: bunny
|
|
myHeader:
|
|
type: array
|
|
description: myHeader
|
|
items:
|
|
type: string
|
|
default:
|
|
something: here
|
|
items:
|
|
default:
|
|
- one
|
|
- two
|
|
collectionFormat: csv
|
|
default: [ one, two, three ]
|
|
enum: [ 99,100,101 ]
|
|
examples:
|
|
"application/json":
|
|
one: two
|
|
three: four
|
|
"text/xml":
|
|
- one
|
|
- two
|
|
- three
|
|
"text/plain": something else.
|
|
schema:
|
|
$ref: '#/definitions/ApiResponse'
|
|
"500":
|
|
description: Error
|
|
schema:
|
|
$ref: '#/definitions/ApiResponse'
|
|
headers:
|
|
someHeader:
|
|
format: something
|
|
pattern: a nice pattern
|
|
exclusiveMinimum: false
|
|
exclusiveMaximum: false
|
|
minimum: 1
|
|
maximum: 2
|
|
maxItems: 3
|
|
minItems: 1
|
|
minLength: 1
|
|
maxLength: 10
|
|
multipleOf: 20
|
|
uniqueItems: false
|
|
type: array
|
|
enum: [one, two]
|
|
items:
|
|
format: something
|
|
type: array
|
|
collectionFormat: csv
|
|
default: cake
|
|
maximum: 10
|
|
exclusiveMaximum: true
|
|
minimum: 1
|
|
exclusiveMinimum: true
|
|
maxLength: 5
|
|
minLength: 1
|
|
pattern: hi!
|
|
minItems: 1
|
|
maxItems: 10
|
|
uniqueItems: true
|
|
enum:
|
|
- one
|
|
- two
|
|
multipleOf: 1
|
|
definitions:
|
|
ApiResponse:
|
|
description: a generic API response object
|
|
type: object
|
|
properties:
|
|
code:
|
|
type: integer
|
|
format: int32
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
Category:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
type: string
|
|
xml:
|
|
name: Category
|
|
Pet:
|
|
type: object
|
|
required:
|
|
- name
|
|
- photoUrls
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
category:
|
|
"$ref": "#/definitions/Category"
|
|
name:
|
|
type: string
|
|
example: doggie
|
|
photoUrls:
|
|
type: array
|
|
xml:
|
|
wrapped: true
|
|
items:
|
|
type: string
|
|
xml:
|
|
name: photoUrl
|
|
tags:
|
|
type: array
|
|
xml:
|
|
wrapped: true
|
|
items:
|
|
xml:
|
|
name: tag
|
|
"$ref": "#/definitions/Tag"
|
|
status:
|
|
type: string
|
|
description: pet status in the store
|
|
enum:
|
|
- available
|
|
- pending
|
|
- sold
|
|
xml:
|
|
name: Pet
|
|
Tag:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
type: string
|
|
xml:
|
|
name: Tag
|
|
Order:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
petId:
|
|
type: integer
|
|
format: int64
|
|
quantity:
|
|
type: integer
|
|
format: int32
|
|
shipDate:
|
|
type: string
|
|
format: date-time
|
|
status:
|
|
type: string
|
|
description: Order Status
|
|
enum:
|
|
- placed
|
|
- approved
|
|
- delivered
|
|
complete:
|
|
type: boolean
|
|
xml:
|
|
name: Order
|
|
User:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
username:
|
|
type: string
|
|
firstName:
|
|
type: string
|
|
lastName:
|
|
type: string
|
|
email:
|
|
type: string
|
|
password:
|
|
type: string
|
|
phone:
|
|
type: string
|
|
userStatus:
|
|
type: integer
|
|
format: int32
|
|
description: User Status
|
|
xml:
|
|
name: User
|
|
externalDocs:
|
|
description: Find out more about Swagger
|
|
url: http://swagger.io
|
|
externalPaths:
|
|
# this is illegal
|
|
test:
|
|
- summary: this is illegal. |