| { |
| "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" |
| }] |
| } |