| { |
| "swagger": "2.0", |
| "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.0", |
| "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", |
| "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": [ |
| "http" |
| ], |
| "paths": { |
| "/pet": { |
| "post": { |
| "tags": [ |
| "pet" |
| ], |
| "summary": "Add a new pet to the store", |
| "description": "", |
| "operationId": "addPet", |
| "consumes": [ |
| "application/json", |
| "application/xml" |
| ], |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "Pet object that needs to be added to the store", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/Pet" |
| } |
| }, |
| { |
| "name": "verbose", |
| "in": "query", |
| "description": "Verbose data", |
| "type": "boolean", |
| "default": false |
| } |
| ], |
| "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/xml", |
| "application/json" |
| ], |
| "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/xml", |
| "application/json" |
| ], |
| "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": "Muliple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", |
| "operationId": "findPetsByTags", |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "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/xml", |
| "application/json" |
| ], |
| "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/xml", |
| "application/json" |
| ], |
| "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/xml", |
| "application/json" |
| ], |
| "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" |
| ] |
| } |
| ] |
| } |
| }, |
| "/pet/{petId}/uploadImage": { |
| "post": { |
| "tags": [ |
| "pet" |
| ], |
| "summary": "uploads an image", |
| "description": "", |
| "operationId": "uploadFile", |
| "consumes": [ |
| "multipart/form-data" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "name": "petId", |
| "in": "path", |
| "description": "ID of pet to update", |
| "required": true, |
| "type": "integer", |
| "format": "int64" |
| }, |
| { |
| "name": "additionalMetadata", |
| "in": "formData", |
| "description": "Additional data to pass to server", |
| "required": false, |
| "type": "string" |
| }, |
| { |
| "name": "file", |
| "in": "formData", |
| "description": "file to upload", |
| "required": false, |
| "type": "file" |
| } |
| ], |
| "responses": { |
| "200": { |
| "description": "successful operation", |
| "schema": { |
| "$ref": "#/definitions/ApiResponse" |
| } |
| } |
| }, |
| "security": [ |
| { |
| "petstore_auth": [ |
| "write:pets", |
| "read:pets" |
| ] |
| } |
| ] |
| } |
| }, |
| "/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": [] |
| } |
| ] |
| } |
| }, |
| "/store/order": { |
| "post": { |
| "tags": [ |
| "store" |
| ], |
| "summary": "Place an order for a pet", |
| "description": "", |
| "operationId": "placeOrder", |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "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/xml", |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "name": "orderId", |
| "in": "path", |
| "description": "ID of pet that needs to be fetched", |
| "required": true, |
| "type": "integer", |
| "maximum": 10.0, |
| "minimum": 1.0, |
| "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/xml", |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "name": "orderId", |
| "in": "path", |
| "description": "ID of the order that needs to be deleted", |
| "required": true, |
| "type": "integer", |
| "minimum": 1.0, |
| "format": "int64" |
| } |
| ], |
| "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", |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "parameters": [ |
| { |
| "in": "body", |
| "name": "body", |
| "description": "Created user object", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/User" |
| } |
| } |
| ], |
| "responses": { |
| "default": { |
| "description": "successful operation" |
| } |
| } |
| } |
| }, |
| "/user/createWithArray": { |
| "post": { |
| "tags": [ |
| "user" |
| ], |
| "summary": "Creates list of users with given input array", |
| "description": "", |
| "operationId": "createUsersWithArrayInput", |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "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", |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "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/login": { |
| "get": { |
| "tags": [ |
| "user" |
| ], |
| "summary": "Logs user into the system", |
| "description": "", |
| "operationId": "loginUser", |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "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", |
| "schema": { |
| "type": "string" |
| }, |
| "headers": { |
| "X-Rate-Limit": { |
| "type": "integer", |
| "format": "int32", |
| "description": "calls per hour allowed by the user" |
| }, |
| "X-Expires-After": { |
| "type": "string", |
| "format": "date-time", |
| "description": "date in UTC when token expires" |
| } |
| } |
| }, |
| "400": { |
| "description": "Invalid username/password supplied" |
| } |
| } |
| } |
| }, |
| "/user/logout": { |
| "get": { |
| "tags": [ |
| "user" |
| ], |
| "summary": "Logs out current logged in user session", |
| "description": "", |
| "operationId": "logoutUser", |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "parameters": [], |
| "responses": { |
| "default": { |
| "description": "successful operation" |
| } |
| } |
| } |
| }, |
| "/user/{username}": { |
| "get": { |
| "tags": [ |
| "user" |
| ], |
| "summary": "Get user by user name", |
| "description": "", |
| "operationId": "getUserByName", |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "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", |
| "produces": [ |
| "application/xml", |
| "application/json" |
| ], |
| "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/xml", |
| "application/json" |
| ], |
| "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" |
| } |
| } |
| } |
| } |
| }, |
| "securityDefinitions": { |
| "petstore_auth": { |
| "type": "oauth2", |
| "authorizationUrl": "http://petstore.swagger.io/oauth/dialog", |
| "flow": "implicit", |
| "scopes": { |
| "write:pets": "modify pets in your account", |
| "read:pets": "read your pets" |
| } |
| }, |
| "api_key": { |
| "type": "apiKey", |
| "name": "api_key", |
| "in": "header" |
| } |
| }, |
| "definitions": { |
| "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", |
| "default": false |
| } |
| }, |
| "xml": { |
| "name": "Order" |
| } |
| }, |
| "Category": { |
| "type": "object", |
| "properties": { |
| "id": { |
| "type": "integer", |
| "format": "int64" |
| }, |
| "name": { |
| "type": "string" |
| } |
| }, |
| "xml": { |
| "name": "Category" |
| } |
| }, |
| "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" |
| } |
| }, |
| "Tag": { |
| "type": "object", |
| "properties": { |
| "id": { |
| "type": "integer", |
| "format": "int64" |
| }, |
| "name": { |
| "type": "string" |
| } |
| }, |
| "xml": { |
| "name": "Tag" |
| } |
| }, |
| "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": { |
| "name": "photoUrl", |
| "wrapped": true |
| }, |
| "items": { |
| "type": "string" |
| } |
| }, |
| "tags": { |
| "type": "array", |
| "xml": { |
| "name": "tag", |
| "wrapped": true |
| }, |
| "items": { |
| "$ref": "#/definitions/Tag" |
| } |
| }, |
| "status": { |
| "type": "string", |
| "description": "pet status in the store", |
| "enum": [ |
| "available", |
| "pending", |
| "sold" |
| ] |
| } |
| }, |
| "xml": { |
| "name": "Pet" |
| } |
| }, |
| "ApiResponse": { |
| "type": "object", |
| "properties": { |
| "code": { |
| "type": "integer", |
| "format": "int32" |
| }, |
| "type": { |
| "type": "string" |
| }, |
| "message": { |
| "type": "string" |
| } |
| } |
| } |
| }, |
| "externalDocs": { |
| "description": "Find out more about Swagger", |
| "url": "http://swagger.io" |
| } |
| } |