blob: b9460bdc4f8945894fb63a02422798f14672e830 [file] [log] [blame]
{
"swagger": "2.0",
"info": {
"version": "1.0",
"title": "To-do Demo",
"description": "This OAS2 (Swagger 2) file represents a real API that lives at http://todos.stoplight.io.\n\nFor authentication information, click the apikey security scheme in the editor sidebar.",
"contact": {
"name": "Stoplight",
"url": "https://stoplight.io"
},
"license": {
"name": "MIT"
}
},
"host": "todos.stoplight.io",
"schemes": ["http"],
"consumes": ["application/json"],
"produces": ["application/json"],
"securityDefinitions": {
"Basic": {
"type": "basic"
},
"API Key": {
"type": "apiKey",
"name": "apikey",
"in": "query"
}
},
"paths": {
"/todos/{todoId}": {
"parameters": [{
"name": "todoId",
"in": "path",
"required": true,
"type": "string"
}],
"get": {
"operationId": "GET_todo",
"summary": "Get Todo",
"tags": ["Todos"],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/todo-full"
},
"examples": {
"application/json": {
"id": 1,
"name": "get food",
"completed": false,
"completed_at": "1955-04-23T13:22:52.685Z",
"created_at": "1994-11-05T03:26:51.471Z",
"updated_at": "1989-07-29T11:30:06.701Z"
},
"/todos/foobar": "{\n\t\"foo\": \"bar\"\n}\n",
"/todos/chores": {
"id": 9000,
"name": "Do Chores",
"completed": false,
"created_at": "2014-08-28T14:14:28.494Z",
"updated_at": "2014-08-28T14:14:28.494Z"
},
"new": {
"name": "esse qui proident labore",
"completed": null,
"id": 920778,
"completed_at": "2014-01-07T07:49:55.123Z",
"created_at": "1948-04-21T12:04:21.282Z",
"updated_at": "1951-12-19T11:10:34.039Z",
"user": {
"name": "irure deserunt fugiat",
"age": 121.45395681110494
},
"float": -47990796.228164576
}
}
},
"404": {
"$ref": "./todos.common.json#/responses/404"
},
"500": {
"$ref": "./todos.common.json#/responses/500"
}
},
"parameters": [{
"in": "query",
"name": "",
"type": "string"
}]
},
"put": {
"operationId": "PUT_todos",
"summary": "Update Todo",
"tags": ["Todos"],
"parameters": [{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/todo-partial",
"example": {
"name": "my todo's new name",
"completed": false
}
}
}],
"responses": {
"200": {
"description": "",
"schema": {
"$ref": "#/definitions/todo-full"
},
"examples": {
"application/json": {
"id": 9000,
"name": "It's Over 9000!!!",
"completed": true,
"completed_at": null,
"created_at": "2014-08-28T14:14:28.494Z",
"updated_at": "2015-08-28T14:14:28.494Z"
}
}
},
"401": {
"$ref": "./todos.common.json#/responses/401"
},
"404": {
"$ref": "./todos.common.json#/responses/404"
},
"500": {
"$ref": "./todos.common.json#/responses/500"
}
},
"security": [{
"Basic": []
},
{
"API Key": []
}
]
},
"delete": {
"operationId": "DELETE_todo",
"summary": "Delete Todo",
"tags": ["Todos"],
"responses": {
"204": {
"description": ""
},
"401": {
"$ref": "./todos.common.json#/responses/401"
},
"404": {
"$ref": "./todos.common.json#/responses/404"
},
"500": {
"$ref": "./todos.common.json#/responses/500"
}
},
"security": [{
"Basic": []
},
{
"API Key": []
}
]
}
},
"/todos": {
"post": {
"operationId": "POST_todos",
"summary": "Create Todo",
"tags": ["Todos"],
"parameters": [{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/todo-partial",
"example": {
"name": "my todo's name",
"completed": false
}
}
}],
"responses": {
"201": {
"description": "",
"schema": {
"$ref": "#/definitions/todo-full"
},
"examples": {
"application/json": {
"id": 9000,
"name": "It's Over 9000!!!",
"completed": null,
"completed_at": null,
"created_at": "2014-08-28T14:14:28.494Z",
"updated_at": "2014-08-28T14:14:28.494Z"
},
"/todos/chores": {
"id": 9000,
"name": "Do Chores",
"completed": false,
"created_at": "2014-08-28T14:14:28.494Z",
"updated_at": "2014-08-28T14:14:28.494Z"
}
}
},
"401": {
"$ref": "./todos.common.json#/responses/401"
},
"500": {
"$ref": "./todos.common.json#/responses/500"
}
},
"security": [{
"API Key": []
},
{
"Basic": []
}
],
"description": "This creates a Todo object.\n\nTesting `inline code`."
},
"get": {
"operationId": "GET_todos",
"summary": "List Todos",
"tags": ["Todos"],
"parameters": [{
"$ref": "#/parameters/limit"
},
{
"$ref": "#/parameters/skip"
}
],
"responses": {
"200": {
"description": "",
"schema": {
"type": "array",
"items": {
"$ref": "#/definitions/todo-full"
}
},
"examples": {
"application/json": [{
"id": 1,
"name": "design the thingz",
"completed": true
},
{
"id": 2,
"name": "mock the thingz",
"completed": true
},
{
"id": 3,
"name": "code the thingz",
"completed": false
}
],
"empty": []
},
"headers": {
"foo": {
"type": "string",
"default": "bar"
}
}
},
"500": {
"$ref": "./todos.common.json#/responses/500"
}
},
"description": "​"
}
}
},
"parameters": {
"limit": {
"name": "limit",
"in": "query",
"description": "This is how it works.",
"required": false,
"type": "integer",
"maximum": 100
},
"skip": {
"name": "skip",
"in": "query",
"required": false,
"type": "string"
}
},
"definitions": {
"todo-partial": {
"title": "Todo Partial",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"completed": {
"type": ["boolean", "null"]
}
},
"required": ["name", "completed"]
},
"todo-full": {
"title": "Todo Full",
"allOf": [{
"$ref": "#/definitions/todo-partial"
},
{
"type": "object",
"properties": {
"id": {
"type": "integer",
"minimum": 0,
"maximum": 1000000
},
"completed_at": {
"type": ["string", "null"],
"format": "date-time"
},
"created_at": {
"type": "string",
"format": "date-time"
},
"updated_at": {
"type": "string",
"format": "date-time"
},
"user": {
"$ref": "./todos.common.json#/definitions/user"
}
},
"required": ["id", "user"]
}
]
}
},
"tags": [{
"name": "Todos"
}]
}