737 lines
19 KiB
YAML
737 lines
19 KiB
YAML
openapi: 3.0.0
|
|
info:
|
|
title: 'Swagger Petstore'
|
|
description: "This is a sample Petstore server. You can find\nout more about Swagger at\n[http://swagger.io](http://swagger.io) or on\n[irc.freenode.net, #swagger](http://swagger.io/irc/)."
|
|
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://virtserver.swaggerhub.com/swagger/Petstore/1.0.0'
|
|
description: 'SwaggerHUB API Mocking'
|
|
paths:
|
|
/pet:
|
|
put:
|
|
tags:
|
|
- pet
|
|
summary: 'Update an existing pet'
|
|
operationId: updatePet
|
|
requestBody:
|
|
$ref: '#/components/requestBodies/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'
|
|
operationId: addPet
|
|
requestBody:
|
|
$ref: '#/components/requestBodies/Pet'
|
|
responses:
|
|
'405':
|
|
description: 'Invalid input'
|
|
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 string'
|
|
operationId: findPetsByStatus
|
|
parameters:
|
|
-
|
|
name: status
|
|
in: query
|
|
description: 'Status values that needed to be considered for filter'
|
|
required: true
|
|
explode: true
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
enum:
|
|
- available
|
|
- pending
|
|
- sold
|
|
default: available
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Pet'
|
|
application/xml:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Pet'
|
|
'400':
|
|
description: 'Invalid status value'
|
|
deprecated: true
|
|
security:
|
|
-
|
|
petstore_auth:
|
|
- 'write:pets'
|
|
- 'read:pets'
|
|
/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: findByTags
|
|
parameters:
|
|
-
|
|
name: tags
|
|
in: query
|
|
description: 'Tags to filter by'
|
|
required: true
|
|
explode: true
|
|
schema:
|
|
type: array
|
|
items:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Pet'
|
|
application/xml:
|
|
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'
|
|
application/xml:
|
|
schema:
|
|
$ref: '#/components/schemas/Pet'
|
|
'400':
|
|
description: 'Invalid ID supplier'
|
|
'404':
|
|
description: 'Pet not found'
|
|
security:
|
|
-
|
|
api_key: []
|
|
post:
|
|
tags:
|
|
- pet
|
|
summary: 'Updates a pet in the store with form data'
|
|
operationId: updatePetWithForm
|
|
parameters:
|
|
-
|
|
name: petId
|
|
in: path
|
|
description: 'ID of pet that needs to be updated'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
requestBody:
|
|
description: 'Input data format'
|
|
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'
|
|
operationId: deletePet
|
|
parameters:
|
|
-
|
|
name: api_key
|
|
in: header
|
|
required: false
|
|
schema:
|
|
type: string
|
|
-
|
|
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/{petId}/uploadImage':
|
|
post:
|
|
tags:
|
|
- pet
|
|
summary: 'uploads an image'
|
|
operationId: uploadFile
|
|
parameters:
|
|
-
|
|
name: petId
|
|
in: path
|
|
description: 'ID of pet to update'
|
|
required: true
|
|
schema:
|
|
type: integer
|
|
format: int64
|
|
example: 1
|
|
requestBody:
|
|
description: 'Upload images request body'
|
|
content:
|
|
application/octet-stream:
|
|
schema:
|
|
type: string
|
|
format: binary
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/ApiResponse'
|
|
security:
|
|
-
|
|
petstore_auth:
|
|
- 'write:pets'
|
|
- 'read:pets'
|
|
/store:
|
|
get:
|
|
tags:
|
|
- store
|
|
summary: 'Returns pet inventories by status'
|
|
description: 'Returns a map of status codes to quantities'
|
|
operationId: getInventory
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
additionalProperties:
|
|
type: integer
|
|
format: int32
|
|
security:
|
|
-
|
|
api_key: []
|
|
/store/order:
|
|
post:
|
|
tags:
|
|
- store
|
|
summary: 'Place an order for a pet'
|
|
operationId: placeOrder
|
|
requestBody:
|
|
description: 'order placed for purchasing th pet'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Order'
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/Order'
|
|
application/xml:
|
|
schema:
|
|
$ref: '#/components/schemas/Order'
|
|
'/store/order/{orderId}':
|
|
get:
|
|
tags:
|
|
- store
|
|
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'
|
|
content:
|
|
application/xml:
|
|
schema:
|
|
$ref: '#/components/schemas/Order'
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/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
|
|
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: 'Create user object'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
responses:
|
|
default:
|
|
description: 'successful operation'
|
|
/user/createWithArray:
|
|
post:
|
|
tags:
|
|
- user
|
|
summary: 'Create list of users with given input array'
|
|
operationId: createUsersWithListInput
|
|
requestBody:
|
|
$ref: '#/components/requestBodies/UserArray'
|
|
responses:
|
|
default:
|
|
description: 'successful operation'
|
|
/user/login:
|
|
get:
|
|
tags:
|
|
- user
|
|
summary: 'Logs user into system'
|
|
operationId: loginUser
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: query
|
|
description: 'The user name for login'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
-
|
|
name: password
|
|
in: query
|
|
required: true
|
|
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: datetime
|
|
content:
|
|
application/xml:
|
|
schema:
|
|
type: string
|
|
application/json:
|
|
schema:
|
|
type: string
|
|
'400':
|
|
description: 'Invalid username/password supplied'
|
|
/user/logout:
|
|
get:
|
|
tags:
|
|
- user
|
|
summary: 'Logs out current logged in user session'
|
|
operationId: logoutUser
|
|
responses:
|
|
default:
|
|
description: 'successful operation'
|
|
'/user/{username}':
|
|
get:
|
|
summary: 'Get user by user name'
|
|
operationId: getUserByName
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
required: true
|
|
schema:
|
|
type: string
|
|
responses:
|
|
'200':
|
|
description: 'successful operation'
|
|
content:
|
|
application/xml:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
'400':
|
|
description: 'Invalid username supplied'
|
|
'404':
|
|
description: 'User not found'
|
|
put:
|
|
summary: 'Updated user'
|
|
description: 'This can pnly be done by the logged in user.'
|
|
operationId: updateUser
|
|
parameters:
|
|
-
|
|
name: username
|
|
in: path
|
|
description: 'name that to be updated'
|
|
required: true
|
|
schema:
|
|
type: string
|
|
requestBody:
|
|
description: 'Updated user object'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/User'
|
|
responses:
|
|
'400':
|
|
description: 'Invalid user supplied'
|
|
'404':
|
|
description: 'User not found'
|
|
delete:
|
|
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:
|
|
title: 'Api response'
|
|
description: 'Api response'
|
|
properties:
|
|
code:
|
|
title: Code
|
|
description: Code
|
|
type: integer
|
|
format: int32
|
|
message:
|
|
title: Message
|
|
description: Message
|
|
type: string
|
|
type: object
|
|
Category:
|
|
title: 'Pets Category'
|
|
description: 'Pets Category'
|
|
properties:
|
|
id:
|
|
title: ID
|
|
description: ID
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
title: 'Category name'
|
|
description: 'Category name'
|
|
type: string
|
|
type: object
|
|
xml:
|
|
name: Category
|
|
Order:
|
|
title: 'Order model'
|
|
description: 'Order model'
|
|
properties:
|
|
id:
|
|
title: ID
|
|
description: ID
|
|
type: integer
|
|
format: int64
|
|
default: 1
|
|
petId:
|
|
title: 'Pet ID'
|
|
description: 'Pet ID'
|
|
type: integer
|
|
format: int64
|
|
default: 1
|
|
quantity:
|
|
title: Quantity
|
|
description: Quantity
|
|
type: integer
|
|
format: in32
|
|
default: 12
|
|
shipDate:
|
|
title: 'Shipping date'
|
|
description: 'Shipping date'
|
|
type: string
|
|
format: datetime
|
|
default: '2017-02-02 18:31:45'
|
|
status:
|
|
title: 'Order status'
|
|
description: 'Order status'
|
|
type: string
|
|
default: placed
|
|
enum:
|
|
- placed
|
|
- approved
|
|
- delivered
|
|
complete:
|
|
title: 'Complete status'
|
|
description: 'Complete status'
|
|
type: boolean
|
|
format: int64
|
|
default: 'false'
|
|
type: object
|
|
Pet:
|
|
title: 'Pet model'
|
|
description: 'Pet model'
|
|
required:
|
|
- name
|
|
- photoUrls
|
|
properties:
|
|
id:
|
|
title: ID
|
|
description: ID
|
|
type: integer
|
|
format: int64
|
|
category:
|
|
$ref: '#/components/schemas/Category'
|
|
name:
|
|
title: 'Pet name'
|
|
description: 'Pet name'
|
|
type: integer
|
|
format: int64
|
|
photoUrls:
|
|
title: 'Photo urls'
|
|
description: 'Photo urls'
|
|
type: array
|
|
items:
|
|
type: string
|
|
default: images/image-1.png
|
|
xml:
|
|
name: photoUrl
|
|
wrapped: true
|
|
tags:
|
|
title: 'Pet tags'
|
|
description: 'Pet tags'
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/Tag'
|
|
xml:
|
|
name: tag
|
|
wrapped: true
|
|
type: object
|
|
xml:
|
|
name: Pet
|
|
Tag:
|
|
title: Tag
|
|
description: Tag
|
|
properties:
|
|
id:
|
|
title: ID
|
|
description: ID
|
|
type: integer
|
|
format: int64
|
|
name:
|
|
title: Name
|
|
description: Name
|
|
type: string
|
|
type: object
|
|
xml:
|
|
name: Tag
|
|
User:
|
|
title: 'User model'
|
|
description: 'User model'
|
|
properties:
|
|
id:
|
|
title: ID
|
|
description: ID
|
|
type: integer
|
|
format: int64
|
|
username:
|
|
title: Username
|
|
description: Username
|
|
type: string
|
|
firstName:
|
|
title: 'First name'
|
|
description: 'First name'
|
|
type: string
|
|
lastName:
|
|
title: 'Last name'
|
|
description: 'Last name'
|
|
type: string
|
|
email:
|
|
title: Email
|
|
description: Email
|
|
type: string
|
|
format: email
|
|
password:
|
|
title: Password
|
|
description: Password
|
|
type: string
|
|
format: int64
|
|
maximum: 255
|
|
phone:
|
|
title: Phone
|
|
description: Phone
|
|
type: string
|
|
format: msisdn
|
|
userStatus:
|
|
title: 'User status'
|
|
description: 'User status'
|
|
type: integer
|
|
format: int32
|
|
type: object
|
|
requestBodies:
|
|
Pet:
|
|
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'
|
|
UserArray:
|
|
description: 'List of user object'
|
|
required: true
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: '#/components/schemas/User'
|
|
securitySchemes:
|
|
petstore_auth:
|
|
type: oauth2
|
|
flows:
|
|
implicit:
|
|
authorizationUrl: 'http://petstore.swagger.io/oauth/dialog'
|
|
scopes:
|
|
'write:pets': 'modify pets in your account'
|
|
'read:pets': 'read your pets'
|
|
api_key:
|
|
type: apiKey
|
|
name: api_key
|
|
in: header
|
|
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 store'
|
|
url: 'http://swagger.io'
|
|
externalDocs:
|
|
description: 'Find out more about Swagger'
|
|
url: 'http://swagger.io'
|