| { |
| "swagger": "2.0", |
| "info": { |
| "description": "A simple Bookstore API example.", |
| "title": "Bookstore", |
| "version": "1.0.0" |
| }, |
| "host": "generated-bookstore.appspot.com", |
| "basePath": "/", |
| "consumes": [ |
| "application/json" |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "schemes": [ |
| "https" |
| ], |
| "paths": { |
| "/shelves": { |
| "get": { |
| "description": "Return all shelves in the bookstore.", |
| "operationId": "listShelves", |
| "produces": [ |
| "application/json" |
| ], |
| "responses": { |
| "200": { |
| "description": "List of shelves in the bookstore.", |
| "schema": { |
| "$ref": "#/definitions/listShelvesResponse" |
| } |
| } |
| }, |
| "security": [ |
| |
| ] |
| }, |
| "post": { |
| "description": "Create a new shelf in the bookstore.", |
| "operationId": "createShelf", |
| "parameters": [ |
| { |
| "description": "A shelf resource to create.", |
| "in": "body", |
| "name": "shelf", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/shelf" |
| } |
| } |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "responses": { |
| "200": { |
| "description": "A newly created shelf resource.", |
| "schema": { |
| "$ref": "#/definitions/shelf" |
| } |
| } |
| } |
| }, |
| "delete": { |
| "description": "Delete all shelves.", |
| "operationId": "deleteShelves", |
| "responses": { |
| "default": { |
| "description": "An empty response body." |
| } |
| } |
| } |
| }, |
| "/shelves/{shelf}": { |
| "get": { |
| "description": "Get a single shelf resource with the given ID.", |
| "operationId": "getShelf", |
| "parameters": [ |
| { |
| "description": "ID of the shelf to get.", |
| "format": "int64", |
| "in": "path", |
| "name": "shelf", |
| "required": true, |
| "type": "integer" |
| } |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "responses": { |
| "200": { |
| "description": "A shelf resource.", |
| "schema": { |
| "$ref": "#/definitions/shelf" |
| } |
| }, |
| "default": { |
| "description": "unexpected error", |
| "schema": { |
| "$ref": "#/definitions/error" |
| } |
| } |
| } |
| }, |
| "delete": { |
| "description": "Delete a single shelf with the given ID.", |
| "operationId": "deleteShelf", |
| "parameters": [ |
| { |
| "description": "ID of the shelf to delete.", |
| "format": "int64", |
| "in": "path", |
| "name": "shelf", |
| "required": true, |
| "type": "integer" |
| } |
| ], |
| "responses": { |
| "default": { |
| "description": "An empty response body." |
| } |
| } |
| } |
| }, |
| "/shelves/{shelf}/books": { |
| "get": { |
| "description": "Return all books in a shelf with the given ID.", |
| "operationId": "listBooks", |
| "parameters": [ |
| { |
| "description": "ID of the shelf whose books should be returned.", |
| "format": "int64", |
| "in": "path", |
| "name": "shelf", |
| "required": true, |
| "type": "integer" |
| } |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "responses": { |
| "200": { |
| "description": "List of books on the specified shelf.", |
| "schema": { |
| "$ref": "#/definitions/listBooksResponse" |
| } |
| }, |
| "default": { |
| "description": "unexpected error", |
| "schema": { |
| "$ref": "#/definitions/error" |
| } |
| } |
| } |
| }, |
| "post": { |
| "description": "Create a new book on the shelf.", |
| "operationId": "createBook", |
| "parameters": [ |
| { |
| "description": "ID of the shelf where the book should be created.", |
| "format": "int64", |
| "in": "path", |
| "name": "shelf", |
| "required": true, |
| "type": "integer" |
| }, |
| { |
| "description": "Book to create.", |
| "in": "body", |
| "name": "book", |
| "required": true, |
| "schema": { |
| "$ref": "#/definitions/book" |
| } |
| } |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "responses": { |
| "200": { |
| "description": "A newly created book resource.", |
| "schema": { |
| "$ref": "#/definitions/book" |
| } |
| }, |
| "default": { |
| "description": "unexpected error", |
| "schema": { |
| "$ref": "#/definitions/error" |
| } |
| } |
| } |
| } |
| }, |
| "/shelves/{shelf}/books/{book}": { |
| "get": { |
| "description": "Get a single book with a given ID from a shelf.", |
| "operationId": "getBook", |
| "parameters": [ |
| { |
| "description": "ID of the shelf from which to get the book.", |
| "format": "int64", |
| "in": "path", |
| "name": "shelf", |
| "required": true, |
| "type": "integer" |
| }, |
| { |
| "description": "ID of the book to get from the shelf.", |
| "format": "int64", |
| "in": "path", |
| "name": "book", |
| "required": true, |
| "type": "integer" |
| } |
| ], |
| "produces": [ |
| "application/json" |
| ], |
| "responses": { |
| "200": { |
| "description": "A book resource.", |
| "schema": { |
| "$ref": "#/definitions/book" |
| } |
| }, |
| "default": { |
| "description": "unexpected error", |
| "schema": { |
| "$ref": "#/definitions/error" |
| } |
| } |
| } |
| }, |
| "delete": { |
| "description": "Delete a single book with a given ID from a shelf.", |
| "operationId": "deleteBook", |
| "parameters": [ |
| { |
| "description": "ID of the shelf from which to delete the book.", |
| "format": "int64", |
| "in": "path", |
| "name": "shelf", |
| "required": true, |
| "type": "integer" |
| }, |
| { |
| "description": "ID of the book to delete from the shelf.", |
| "format": "int64", |
| "in": "path", |
| "name": "book", |
| "required": true, |
| "type": "integer" |
| } |
| ], |
| "responses": { |
| "default": { |
| "description": "An empty response body." |
| } |
| } |
| } |
| } |
| }, |
| "definitions": { |
| "book": { |
| "properties": { |
| "author": { |
| "type": "string" |
| }, |
| "name": { |
| "type": "string" |
| }, |
| "title": { |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "name", |
| "author", |
| "title" |
| ] |
| }, |
| "listBooksResponse": { |
| "properties": { |
| "books": { |
| "items": { |
| "$ref": "#/definitions/book" |
| }, |
| "type": "array" |
| } |
| }, |
| "required": [ |
| "books" |
| ], |
| "type": "object" |
| }, |
| "listShelvesResponse": { |
| "properties": { |
| "shelves": { |
| "items": { |
| "$ref": "#/definitions/shelf" |
| }, |
| "type": "array" |
| } |
| }, |
| "type": "object" |
| }, |
| "shelf": { |
| "properties": { |
| "name": { |
| "type": "string" |
| }, |
| "theme": { |
| "type": "string" |
| } |
| }, |
| "required": [ |
| "name", |
| "theme" |
| ] |
| }, |
| "error": { |
| "required": [ |
| "code", |
| "message" |
| ], |
| "properties": { |
| "code": { |
| "type": "integer", |
| "format": "int32" |
| }, |
| "message": { |
| "type": "string" |
| } |
| } |
| } |
| }, |
| "security": [ |
| { |
| "api_key": [ |
| |
| ] |
| } |
| ], |
| "securityDefinitions": { |
| "api_key": { |
| "in": "query", |
| "name": "key", |
| "type": "apiKey" |
| } |
| } |
| } |