Created
August 27, 2014 20:55
-
-
Save raymondfeng/c0d50bfea6bbb8bf43ef to your computer and use it in GitHub Desktop.
Sample swagger 2.0 spec
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{"swagger": 2.0, "info": { | |
"description": "This is a sample server Petstore server. You can find out more about Swagger at <a href=\"http://swagger.wordnik.com\">http://swagger.wordnik.com</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 Sample App", | |
"termsOfService": "http://helloreverb.com/terms/", | |
"contact": { | |
"name": "[email protected]" | |
}, | |
"license": { | |
"name": "Apache 2.0", | |
"url": "http://www.apache.org/licenses/LICENSE-2.0.html" | |
} | |
}, "basePath": "/v2", "paths": { | |
"/user/createWithList": { | |
"post": { | |
"tags": ["user"], | |
"summary": "Creates list of users with given input array", | |
"description": "", | |
"operationId": "createUsersWithListInput", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "List of user object", | |
"required": false, | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
} | |
], | |
"responses": { | |
"default": { | |
"description": "successful operation" | |
} | |
} | |
} | |
}, | |
"/pet": { | |
"put": { | |
"tags": ["pet"], | |
"summary": "Update an existing pet", | |
"description": "", | |
"operationId": "updatePet", | |
"consumes": ["application/json", "application/xml"], | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "Pet object that needs to be added to the store", | |
"required": false, | |
"schema": { | |
"$ref": "#/definitions/Pet" | |
} | |
} | |
], | |
"responses": { | |
"405": { | |
"description": "Validation exception" | |
}, | |
"404": { | |
"description": "Pet not found" | |
}, | |
"400": { | |
"description": "Invalid ID supplied" | |
} | |
} | |
}, | |
"post": { | |
"tags": ["pet"], | |
"summary": "Add a new pet to the store", | |
"description": "", | |
"operationId": "addPet", | |
"consumes": ["application/json", "application/xml"], | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "Pet object that needs to be added to the store", | |
"required": false, | |
"schema": { | |
"$ref": "#/definitions/Pet" | |
} | |
} | |
], | |
"responses": { | |
"405": { | |
"description": "Invalid input" | |
} | |
} | |
} | |
}, | |
"/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/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "orderId", | |
"description": "ID of pet that needs to be fetched", | |
"required": true, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"404": { | |
"description": "Order not found" | |
}, | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/Order" | |
} | |
}, | |
"400": { | |
"description": "Invalid ID supplied" | |
} | |
} | |
}, | |
"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/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "orderId", | |
"description": "ID of the order that needs to be deleted", | |
"required": true, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"404": { | |
"description": "Order not found" | |
}, | |
"400": { | |
"description": "Invalid ID supplied" | |
} | |
} | |
} | |
}, | |
"/user/createWithArray": { | |
"post": { | |
"tags": ["user"], | |
"summary": "Creates list of users with given input array", | |
"description": "", | |
"operationId": "createUsersWithArrayInput", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "List of user object", | |
"required": false | |
} | |
], | |
"responses": { | |
"default": { | |
"description": "successful operation" | |
} | |
} | |
} | |
}, | |
"/store/order": { | |
"post": { | |
"tags": ["store"], | |
"summary": "Place an order for a pet", | |
"description": "", | |
"operationId": "placeOrder", | |
"produces": ["application/json", "application/xml"], | |
"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" | |
} | |
} | |
} | |
}, | |
"/pet/findByStatus": { | |
"get": { | |
"tags": ["pet"], | |
"summary": "Finds Pets by status", | |
"description": "Multiple status values can be provided with comma seperated strings", | |
"operationId": "findPetsByStatus", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "query", | |
"name": "status", | |
"description": "Status values that need to be considered for filter", | |
"required": false, | |
"type": "array", | |
"items": { | |
"type": "string" | |
}, | |
"collectionFormat": "jaxrs" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/Pet" | |
} | |
}, | |
"400": { | |
"description": "Invalid status value" | |
} | |
} | |
} | |
}, | |
"/user/{username}": { | |
"get": { | |
"tags": ["user"], | |
"summary": "Get user by user name", | |
"description": "", | |
"operationId": "getUserByName", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "username", | |
"description": "The name that needs to be fetched. Use user1 for testing. ", | |
"required": true, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"404": { | |
"description": "User not found" | |
}, | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
}, | |
"400": { | |
"description": "Invalid username supplied" | |
} | |
} | |
}, | |
"put": { | |
"tags": ["user"], | |
"summary": "Updated user", | |
"description": "This can only be done by the logged in user.", | |
"operationId": "updateUser", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "username", | |
"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": { | |
"404": { | |
"description": "User not found" | |
}, | |
"400": { | |
"description": "Invalid user supplied" | |
} | |
} | |
}, | |
"delete": { | |
"tags": ["user"], | |
"summary": "Delete user", | |
"description": "This can only be done by the logged in user.", | |
"operationId": "deleteUser", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "username", | |
"description": "The name that needs to be deleted", | |
"required": true, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"404": { | |
"description": "User not found" | |
}, | |
"400": { | |
"description": "Invalid username supplied" | |
} | |
} | |
} | |
}, | |
"/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", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "query", | |
"name": "tags", | |
"description": "Tags to filter by", | |
"required": false, | |
"type": "array", | |
"items": { | |
"type": "string" | |
}, | |
"collectionFormat": "jaxrs" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/Pet" | |
} | |
}, | |
"400": { | |
"description": "Invalid tag value" | |
} | |
} | |
} | |
}, | |
"/user": { | |
"post": { | |
"tags": ["user"], | |
"summary": "Create user", | |
"description": "This can only be done by the logged in user.", | |
"operationId": "createUser", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "body", | |
"name": "body", | |
"description": "Created user object", | |
"required": false, | |
"schema": { | |
"$ref": "#/definitions/User" | |
} | |
} | |
], | |
"responses": { | |
"default": { | |
"description": "successful operation" | |
} | |
} | |
} | |
}, | |
"/user/logout": { | |
"get": { | |
"tags": ["user"], | |
"summary": "Logs out current logged in user session", | |
"description": "", | |
"operationId": "logoutUser", | |
"produces": ["application/json", "application/xml"], | |
"responses": { | |
"default": { | |
"description": "successful operation" | |
} | |
} | |
} | |
}, | |
"/user/login": { | |
"get": { | |
"tags": ["user"], | |
"summary": "Logs user into the system", | |
"description": "", | |
"operationId": "loginUser", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "query", | |
"name": "username", | |
"description": "The user name for login", | |
"required": false, | |
"type": "string" | |
}, | |
{ | |
"in": "query", | |
"name": "password", | |
"description": "The password for login in clear text", | |
"required": false, | |
"type": "string" | |
} | |
], | |
"responses": { | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"type": "string" | |
} | |
}, | |
"400": { | |
"description": "Invalid username/password supplied" | |
} | |
} | |
} | |
}, | |
"/pet/{petId}": { | |
"get": { | |
"tags": ["pet"], | |
"summary": "Find pet by ID", | |
"description": "Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions", | |
"operationId": "getPetById", | |
"produces": ["application/json", "application/xml"], | |
"parameters": [ | |
{ | |
"in": "path", | |
"name": "petId", | |
"description": "ID of pet that needs to be fetched", | |
"required": true, | |
"type": "integer", | |
"format": "int64" | |
} | |
], | |
"responses": { | |
"404": { | |
"description": "Pet not found" | |
}, | |
"200": { | |
"description": "successful operation", | |
"schema": { | |
"$ref": "#/definitions/Pet" | |
} | |
}, | |
"400": { | |
"description": "Invalid ID supplied" | |
} | |
} | |
} | |
} | |
}, "definitions": { | |
"User": { | |
"properties": { | |
"phone": { | |
"type": "string" | |
}, | |
"password": { | |
"type": "string" | |
}, | |
"email": { | |
"type": "string" | |
}, | |
"lastName": { | |
"type": "string" | |
}, | |
"firstName": { | |
"type": "string" | |
}, | |
"username": { | |
"type": "string" | |
}, | |
"id": { | |
"type": "integer", | |
"format": "int64" | |
}, | |
"userStatus": { | |
"type": "integer", | |
"format": "int32", | |
"position": 0 | |
} | |
} | |
}, | |
"Category": { | |
"properties": { | |
"name": { | |
"type": "string" | |
}, | |
"id": { | |
"type": "integer", | |
"format": "int64" | |
} | |
} | |
}, | |
"Pet": { | |
"enum": ["photoUrls", "name"], | |
"properties": { | |
"tags": { | |
"type": "array", | |
"items": { | |
"$ref": "Tag" | |
} | |
}, | |
"photoUrls": { | |
"type": "array", | |
"items": { | |
"type": "string" | |
} | |
}, | |
"category": { | |
"$ref": "Category" | |
}, | |
"id": { | |
"type": "integer", | |
"format": "int64" | |
}, | |
"name": { | |
"type": "string", | |
"example": "doggie", | |
"position": 0 | |
}, | |
"status": { | |
"type": "string", | |
"position": 0 | |
} | |
} | |
}, | |
"Tag": { | |
"properties": { | |
"name": { | |
"type": "string" | |
}, | |
"id": { | |
"type": "integer", | |
"format": "int64" | |
} | |
} | |
}, | |
"Order": { | |
"properties": { | |
"complete": { | |
"$ref": "boolean" | |
}, | |
"shipDate": { | |
"type": "string", | |
"format": "date-time" | |
}, | |
"quantity": { | |
"type": "integer", | |
"format": "int32" | |
}, | |
"petId": { | |
"type": "integer", | |
"format": "int64" | |
}, | |
"id": { | |
"type": "integer", | |
"format": "int64" | |
}, | |
"status": { | |
"type": "string", | |
"position": 0 | |
} | |
} | |
}, | |
"boolean": { | |
"properties": {} | |
} | |
}} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment