2016-02-01 15:14:59 +03:00
---
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"
x-logo :
url : "https://rebilly.github.io/ReDoc/petstore-logo.png"
license :
name : "Apache 2.0"
url : "http://www.apache.org/licenses/LICENSE-2.0.html"
host : "petstore.swagger.io"
basePath : "/v2"
tags :
-
name : "Pagination"
x-traitTag : true
description : |-
Sometimes you just can't get enough. For this reason, we've provided a convenient way to access more data in
any request for sequential data. Simply call the url in the next_url parameter and we'll respond with the next
set of data.
```json
{
...
"pagination": {
"next_url": "https://api.instagram.com/v1/tags/puppy/media/recent?access_token=fb2e77d.47a0479900504cb3ab4a1f626d174d2d&max_id=13872296" ,
"next_max_id": "13872296"
}
}
```
On views where pagination is present, we also support the `count` parameter.
Simply set this to the number of items you'd like to receive. Note that the default values
should be fine for most applications - but if you decide to increase this number there is a maximum value
defined on each endpoint.
externalDocs :
description : "Find out more"
url : "http://swagger.io"
-
name : "JSONP"
x-traitTag : true
description : |-
If you're writing an AJAX application, and you'd like to wrap our response with a callback,
all you have to do is specify a callback parameter with any API call :
```
https://api.instagram.com/v1/tags/coffee/media/recent?access_token=fb2e77d.47a0479900504cb3ab4a1f626d174d2d&callback=callbackFunction
```
Would respond with :
```js
callbackFunction({
...
});
```
> Example of markdown blockquote
externalDocs :
description : "Find out more"
url : "http://swagger.io"
-
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"
responses :
405 :
description : "Invalid input"
security :
-
petstore_auth :
- "write:pets"
- "read:pets"
2016-02-01 15:46:43 +03:00
x-code-samples :
-
lang : PHP
source : |-
$form = new \PetStore\Entities\Pet();
$form->setPetType("Dog");
$form->setName("Rex");
// set other fields
try {
$pet = $client->pets()->create($form);
} catch (UnprocessableEntityException $e) {
var_dump($e->getErrors());
}
-
lang : C#
source : |-
PetStore.v1.Pet pet = new PetStore.v1.Pet();
pet.setApiKey("your api key");
pet.petType = PetStore.v1.Pet.TYPE_DOG;
pet.name = "Rex";
// set other fields
PetStoreResponse response = pet.create();
if (response.statusCode == HttpStatusCode.Created)
{
// Successfully created
}
else
{
// Something wrong -- check response for errors
Console.WriteLine(response.getRawResponse());
}
2016-02-01 15:14:59 +03:00
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"
2016-02-03 17:47:20 +03:00
x-code-samples :
-
lang : PHP
source : |-
$form = new \PetStore\Entities\Pet();
$form->setPetId(1);
$form->setPetType("Dog");
$form->setName("Rex");
// set other fields
try {
$pet = $client->pets()->update($form);
} catch (UnprocessableEntityException $e) {
var_dump($e->getErrors());
}
2016-02-01 15:14:59 +03:00
security :
-
petstore_auth :
- "write:pets"
- "read:pets"
/pet/findByStatus :
get :
tags :
- "pet"
- "Pagination"
- "JSONP"
summary : "Finds Pets by status"
description : "Multiple status values can be provided with comma seperated 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 : "csv"
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"
- "Pagination"
- "JSONP"
summary : "Finds Pets by tags"
description : "Muliple tags can be provided with comma seperated 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 : "csv"
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"
- "JSONP"
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 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"
- "JSONP"
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"
- "JSONP"
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 : "integer"
maximum : 5
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 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"
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"
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 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"
- "JSONP"
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 : 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/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 :
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"
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"
Category :
type : "object"
properties :
id :
type : "integer"
format : "int64"
name :
type : "string"
xml :
name : "Category"
Tag :
type : "object"
properties :
id :
type : "integer"
format : "int64"
name :
type : "string"
xml :
name : "Tag"
Pet :
type : "object"
required :
- "name"
- "photoUrls"
2016-02-01 15:46:43 +03:00
- "petType"
2016-02-01 15:14:59 +03:00
discriminator : "petType"
properties :
petType :
type : "string"
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"
Cat :
description : "A representation of a cat"
allOf :
-
$ref : "#/definitions/Pet"
-
type : "object"
properties :
huntingSkill :
type : "string"
description : "The measured skill for hunting"
default : "lazy"
enum :
- "clueless"
- "lazy"
- "adventurous"
- "aggressive"
required :
- "huntingSkill"
Dog :
description : "A representation of a dog"
allOf :
-
$ref : "#/definitions/Pet"
-
type : "object"
properties :
packSize :
type : "integer"
format : "int32"
description : "the size of the pack the dog is from"
default : 0
minimum : 0
required :
- "packSize"
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"