Skip to content

Instantly share code, notes, and snippets.

@aurelian
Created March 19, 2015 10:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save aurelian/a8718157fb5aa687c495 to your computer and use it in GitHub Desktop.
Save aurelian/a8718157fb5aa687c495 to your computer and use it in GitHub Desktop.
{
"swagger":"2.0",
"info":{
"description":"This is a sample server Petstore server. You can find out more about Swagger at <a href=\"http://swagger.io\">http://swagger.io</a> or on irc.freenode.net, #swagger. 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://helloreverb.com/terms/",
"contact":{
"email":"apiteam@wordnik.com"
},
"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":"Operations about user"
},
{
"name":"user",
"description":"Access to Petstore orders",
"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"
}
}
],
"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":false,
"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 seperated strings",
"operationId":"findPetsByStatus",
"consumes":[
"application/xml",
"application/json",
"application/x-www-form-urlencoded"
],
"produces":[
"application/xml",
"application/json"
],
"parameters":[
{
"name":"status",
"in":"query",
"description":"Status values that need to be considered for filter",
"required":false,
"type":"array",
"items":{
"type":"string"
},
"collectionFormat":"multi",
"default":"available",
"enum":[
"available",
"pending",
"sold"
]
}
],
"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 seperated strings. Use tag1, tag2, tag3 for testing.",
"operationId":"findPetsByTags",
"consumes":[
"application/xml",
"application/json",
"application/x-www-form-urlencoded"
],
"produces":[
"application/xml",
"application/json"
],
"parameters":[
{
"name":"tags",
"in":"query",
"description":"Tags to filter by",
"required":false,
"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"
]
}
]
}
},
"/pet/{petId}":{
"get":{
"tags":[
"pet"
],
"summary":"Find pet by ID",
"description":"Returns a single pet",
"operationId":"getPetById",
"consumes":[
"application/xml",
"application/json",
"application/x-www-form-urlencoded"
],
"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":[
]
},
{
"petstore_auth":[
"write:pets",
"read:pets"
]
}
]
},
"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":"string"
},
{
"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",
"consumes":[
"application/x-www-form-urlencoded"
],
"produces":[
"application/xml",
"application/json"
],
"parameters":[
{
"name":"api_key",
"in":"header",
"description":"",
"required":false,
"type":"string"
},
{
"name":"petId",
"in":"path",
"description":"Pet id to delete",
"required":true,
"type":"integer",
"format":"int64"
}
],
"responses":{
"400":{
"description":"Invalid pet value"
}
},
"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",
"application/xml"
],
"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":false,
"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 <= 5 or > 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":"string"
}
],
"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 value < 1000. Anything above 1000 or nonintegers 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":"string"
}
],
"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":false,
"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":false,
"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":false,
"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":false,
"type":"string"
},
{
"name":"password",
"in":"query",
"description":"The password for login in clear text",
"required":false,
"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 toekn 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 deleted",
"required":true,
"type":"string"
},
{
"in":"body",
"name":"body",
"description":"Updated user object",
"required":false,
"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/api/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":{
"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"
}
},
"Category":{
"properties":{
"id":{
"type":"integer",
"format":"int64"
},
"name":{
"type":"string"
}
},
"xml":{
"name":"Category"
}
},
"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":{
"type":"integer",
"format":"int32",
"description":"User Status"
}
},
"xml":{
"name":"User"
}
},
"Tag":{
"properties":{
"id":{
"type":"integer",
"format":"int64"
},
"name":{
"type":"string"
}
},
"xml":{
"name":"Tag"
}
},
"Pet":{
"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":{
"properties":{
"code":{
"type":"integer",
"format":"int32"
},
"type":{
"type":"string"
},
"message":{
"type":"string"
}
},
"xml":{
"name":"##default"
}
}
},
"externalDocs":{
"description":"Find out more about Swagger",
"url":"http://swagger.io"
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment