670 lines
17 KiB
YAML
670 lines
17 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: 'Swagger Petstore'
|
|
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.'
|
|
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'
|
|
version: 1.0.0
|
|
servers:
|
|
-
|
|
url: 'https://petstore.swagger.io/v3'
|
|
description: 'OpenApi host'
|
|
paths:
|
|
/pet/findByTags:
|
|
get:
|
|
tags:
|
|
- pet
|
|
summary: 'Finds Pets by tags'
|
|
description: 'Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.'
|
|
operationId: findPetsByTags
|
|
parameters:
|
|
-
|
|
name: tags
|
|
in: query
|
|
description: 'Tags to filter by'
|
|
required: true
|
|
style: form
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
'400':
|
|
description: 'Invalid tag value'
|
|
deprecated: true
|
|
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
|
|
parameters:
|
|
-
|
|
name: status
|
|
in: query
|
|
description: 'Status values that need to be considered for filter'
|
|
required: true
|
|
style: form
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: available
|
|
enum:
|
|
- available
|
|
- pending
|
|
- sold
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Pet'
|
|
'400':
|
|
description: 'Invalid status value'
|
|
security:
|
|
-
|
|
petstore_auth:
|
|
- 'write:pets'
|
|
- 'read:pets'
|
|
'/pet/{petId}':
|
|
get:
|
|
tags:
|
|
- pet
|
|
summary: 'Find pet by ID'
|
|
description: 'Returns a single pet'
|
|
operationId: getPetById
|
|
parameters:
|
|
-
|
|
name: petId
|
|
in: path
|
|
description: 'ID of pet to return'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/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
|
|
parameters:
|
|
-
|
|
name: petId
|
|
in: path
|
|
description: 'ID of pet that needs to be updated'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
required: false
|
|
content:
|
|
application/x-www-form-urlencoded:
|
|
schema:
|
|
properties:
|
|
name:
|
|
description: 'Updated name of the pet'
|
|
type: string
|
|
status:
|
|
description: 'Updated status of the pet'
|
|
type: string
|
|
type: object
|
|
responses:
|
|
'405':
|
|
description: 'Invalid input'
|
|
security:
|
|
-
|
|
petstore_auth:
|
|
- 'write:pets'
|
|
- 'read:pets'
|
|
delete:
|
|
tags:
|
|
- pet
|
|
summary: 'Deletes a pet'
|
|
description: ''
|
|
operationId: deletePet
|
|
parameters:
|
|
-
|
|
name: petId
|
|
in: path
|
|
description: 'Pet id to delete'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
responses:
|
|
'400':
|
|
description: 'Invalid ID supplied'
|
|
'404':
|
|
description: 'Pet not found'
|
|
security:
|
|
-
|
|
petstore_auth:
|
|
- 'write:pets'
|
|
- 'read:pets'
|
|
/pet:
|
|
put:
|
|
tags:
|
|
- pet
|
|
summary: 'Update an existing pet'
|
|
description: ''
|
|
operationId: updatePet
|
|
requestBody:
|
|
description: 'Pet object that needs to be added to the store'
|
|
required: true
|
|
content:
|
|
application/xml:
|
|
schema:
|
|
$ref: '#/components/schemas/Pet'
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Pet'
|
|
responses:
|
|
'400':
|
|
description: 'Invalid ID supplied'
|
|
'404':
|
|
description: 'Pet not found'
|
|
'405':
|
|
description: 'Validation exception'
|
|
security:
|
|
-
|
|
petstore_auth:
|
|
- 'write:pets'
|
|
- 'read:pets'
|
|
post:
|
|
tags:
|
|
- pet
|
|
summary: 'Add a new pet to the store'
|
|
description: ''
|
|
operationId: addPet
|
|
requestBody:
|
|
description: 'Pet object that needs to be added to the store'
|
|
required: true
|
|
content:
|
|
application/xml:
|
|
schema:
|
|
$ref: '#/components/schemas/Pet'
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Pet'
|
|
responses:
|
|
'405':
|
|
description: 'Invalid input'
|
|
security:
|
|
-
|
|
petstore_auth:
|
|
- 'write:pets'
|
|
- 'read:pets'
|
|
'/pet/{petId}/uploadImage':
|
|
post:
|
|
tags:
|
|
- pet
|
|
summary: 'uploads an image'
|
|
description: ''
|
|
operationId: uploadFile
|
|
parameters:
|
|
-
|
|
name: petId
|
|
in: path
|
|
description: 'ID of pet to update'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
required:
|
|
- file
|
|
properties:
|
|
additionalMetadata:
|
|
description: 'Additional data to pass to server'
|
|
type: string
|
|
file:
|
|
description: 'file to upload'
|
|
type: string
|
|
format: file
|
|
type: object
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
security:
|
|
-
|
|
petstore_auth:
|
|
- 'read:pets'
|
|
- 'write:pets'
|
|
/store/inventory:
|
|
get:
|
|
tags:
|
|
- store
|
|
summary: 'Returns pet inventories by status'
|
|
description: 'Returns a map of status codes to quantities'
|
|
operationId: getInventory
|
|
parameters: []
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
security:
|
|
-
|
|
api_key: []
|
|
/store/order:
|
|
post:
|
|
tags:
|
|
- store
|
|
summary: 'Place an order for a pet'
|
|
description: ''
|
|
operationId: placeOrder
|
|
requestBody:
|
|
description: 'order placed for purchasing the pet'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Order'
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
'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
|
|
parameters:
|
|
-
|
|
name: orderId
|
|
in: path
|
|
description: 'ID of pet that needs to be fetched'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
maximum: 10
|
|
minimum: 1
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
'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
|
|
parameters:
|
|
-
|
|
name: orderId
|
|
in: path
|
|
description: 'ID of the order that needs to be deleted'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
minimum: 1
|
|
responses:
|
|
'400':
|
|
description: 'Invalid ID supplied'
|
|
'404':
|
|
description: 'Order not found'
|
|
/user:
|
|
post:
|
|
tags:
|
|
- user
|
|
summary: 'Create user'
|
|
description: 'This can only be done by the logged in user.'
|
|
operationId: createUser
|
|
requestBody:
|
|
description: 'Created user object'
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
responses:
|
|
default:
|
|
description: 'successful operation'
|
|
/user/createWithArray:
|
|
post:
|
|
tags:
|
|
- user
|
|
summary: 'Creates list of users with given input array'
|
|
description: ''
|
|
operationId: createUsersWithArrayInput
|
|
requestBody:
|
|
description: 'List of user object'
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
responses:
|
|
default:
|
|
description: 'successful operation'
|
|
/user/createWithList:
|
|
post:
|
|
tags:
|
|
- user
|
|
summary: 'Creates list of users with given input array'
|
|
description: ''
|
|
operationId: createUsersWithListInput
|
|
requestBody:
|
|
description: 'List of user object'
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
responses:
|
|
default:
|
|
description: 'successful operation'
|
|
/user/login:
|
|
get:
|
|
tags:
|
|
- user
|
|
summary: 'Logs user into the system'
|
|
description: ''
|
|
operationId: loginUser
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: query
|
|
description: 'The user name for login'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: password
|
|
in: query
|
|
description: 'The password for login in clear text'
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
headers:
|
|
X-Rate-Limit:
|
|
description: 'calls per hour allowed by the user'
|
|
schema:
|
|
type: integer
|
|
format: int32
|
|
X-Expires-After:
|
|
description: 'date in UTC when token expires'
|
|
schema:
|
|
type: string
|
|
format: date-time
|
|
'400':
|
|
description: 'Invalid username/password supplied'
|
|
/user/logout:
|
|
get:
|
|
tags:
|
|
- user
|
|
summary: 'Logs out current logged in user session'
|
|
description: ''
|
|
operationId: logoutUser
|
|
parameters: []
|
|
responses:
|
|
default:
|
|
description: 'successful operation'
|
|
'/user/{username}':
|
|
get:
|
|
tags:
|
|
- user
|
|
summary: 'Get user by user name'
|
|
description: ''
|
|
operationId: getUserByName
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
description: 'The name that needs to be fetched. Use user1 for testing. '
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
'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
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
description: 'name that need to be updated'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: 'Updated user object'
|
|
required: true
|
|
content:
|
|
multipart/form-data:
|
|
schema:
|
|
$ref: '#/components/schemas/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
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
description: 'The name that needs to be deleted'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'400':
|
|
description: 'Invalid username supplied'
|
|
'404':
|
|
description: 'User not found'
|
|
components:
|
|
schemas:
|
|
ApiResponse:
|
|
properties:
|
|
code:
|
|
type: integer
|
|
format: int32
|
|
type:
|
|
type: string
|
|
message:
|
|
type: string
|
|
type: object
|
|
Category:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
type: string
|
|
type: object
|
|
xml:
|
|
name: Category
|
|
Order:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
petId:
|
|
type: integer
|
|
format: int64
|
|
complete:
|
|
type: boolean
|
|
default: false
|
|
quantity:
|
|
type: integer
|
|
format: int32
|
|
shipDate:
|
|
type: string
|
|
format: date-time
|
|
status:
|
|
description: 'Order Status'
|
|
type: string
|
|
enum:
|
|
- placed
|
|
- approved
|
|
- delivered
|
|
type: object
|
|
xml:
|
|
name: Order
|
|
Pet:
|
|
required:
|
|
- name
|
|
- photoUrls
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
type: string
|
|
example: doggie
|
|
category:
|
|
$ref: '#/components/schemas/Category'
|
|
photoUrls:
|
|
type: array
|
|
items:
|
|
type: string
|
|
xml:
|
|
name: photoUrl
|
|
wrapped: true
|
|
tags:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Tag'
|
|
xml:
|
|
name: tag
|
|
wrapped: true
|
|
status:
|
|
description: 'pet status in the store'
|
|
type: string
|
|
enum:
|
|
- available
|
|
- pending
|
|
- sold
|
|
type: object
|
|
xml:
|
|
name: Pet
|
|
Tag:
|
|
properties:
|
|
id:
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
type: string
|
|
type: object
|
|
xml:
|
|
name: Tag
|
|
User:
|
|
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:
|
|
description: 'User Status'
|
|
type: integer
|
|
format: int32
|
|
type: object
|
|
xml:
|
|
name: User
|
|
securitySchemes:
|
|
api_key:
|
|
type: apiKey
|
|
name: api_key
|
|
in: header
|
|
petstore_auth:
|
|
type: oauth2
|
|
flows:
|
|
implicit:
|
|
authorizationUrl: 'http://petstore.swagger.io/oauth/dialog'
|
|
scopes:
|
|
'read:pets': 'read your pets'
|
|
'write:pets': 'modify pets in your account'
|
|
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'
|
|
externalDocs:
|
|
description: 'Find out more about Swagger'
|
|
url: 'http://swagger.io'
|