forked from tsai/budibase
5 changed files with 2848 additions and 0 deletions
@ -0,0 +1,969 @@ |
|||||
|
{ |
||||
|
"swagger": "2.0", |
||||
|
"info": { |
||||
|
"description": "A basic swagger file", |
||||
|
"version": "1.0.0", |
||||
|
"title": "CRUD" |
||||
|
}, |
||||
|
"host": "example.com", |
||||
|
"tags": [ |
||||
|
{ |
||||
|
"name": "entity" |
||||
|
} |
||||
|
], |
||||
|
"schemes": [ |
||||
|
"http" |
||||
|
], |
||||
|
"paths": { |
||||
|
"/entities": { |
||||
|
"post": { |
||||
|
"tags": [ |
||||
|
"entity" |
||||
|
], |
||||
|
"operationId": "create", |
||||
|
"consumes": [ |
||||
|
"application/json" |
||||
|
], |
||||
|
"produces": [ |
||||
|
"application/json" |
||||
|
], |
||||
|
"parameters": [ |
||||
|
{ |
||||
|
"in": "body", |
||||
|
"schema": { |
||||
|
"$ref": "#/definitions/CreateEntity" |
||||
|
} |
||||
|
} |
||||
|
], |
||||
|
"responses": { |
||||
|
"200": { |
||||
|
"description": "successful operation", |
||||
|
"schema": { |
||||
|
"$ref": "#/definitions/ApiResponse" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"security": [ |
||||
|
{ |
||||
|
"auth": [ |
||||
|
"write:entities", |
||||
|
"read:entites" |
||||
|
] |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"/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": true, |
||||
|
"schema": { |
||||
|
"$ref": "#/definitions/Pet" |
||||
|
} |
||||
|
} |
||||
|
], |
||||
|
"responses": { |
||||
|
"400": { |
||||
|
"description": "Invalid ID supplied" |
||||
|
}, |
||||
|
"404": { |
||||
|
"description": "Pet not found" |
||||
|
}, |
||||
|
"405": { |
||||
|
"description": "Validation exception" |
||||
|
} |
||||
|
}, |
||||
|
"security": [ |
||||
|
{ |
||||
|
"petstore_auth": [ |
||||
|
"write:pets", |
||||
|
"read:pets" |
||||
|
] |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"/pet/findByStatus": { |
||||
|
"get": { |
||||
|
"tags": [ |
||||
|
"pet" |
||||
|
], |
||||
|
"summary": "Finds Pets by status", |
||||
|
"description": "Multiple status values can be provided with comma separated strings", |
||||
|
"operationId": "findPetsByStatus", |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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": "multi" |
||||
|
} |
||||
|
], |
||||
|
"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" |
||||
|
], |
||||
|
"summary": "Finds Pets by tags", |
||||
|
"description": "Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing.", |
||||
|
"operationId": "findPetsByTags", |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"parameters": [ |
||||
|
{ |
||||
|
"name": "tags", |
||||
|
"in": "query", |
||||
|
"description": "Tags to filter by", |
||||
|
"required": true, |
||||
|
"type": "array", |
||||
|
"items": { |
||||
|
"type": "string" |
||||
|
}, |
||||
|
"collectionFormat": "multi" |
||||
|
} |
||||
|
], |
||||
|
"responses": { |
||||
|
"200": { |
||||
|
"description": "successful operation", |
||||
|
"schema": { |
||||
|
"type": "array", |
||||
|
"items": { |
||||
|
"$ref": "#/definitions/Pet" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"400": { |
||||
|
"description": "Invalid tag value" |
||||
|
} |
||||
|
}, |
||||
|
"security": [ |
||||
|
{ |
||||
|
"petstore_auth": [ |
||||
|
"write:pets", |
||||
|
"read:pets" |
||||
|
] |
||||
|
} |
||||
|
], |
||||
|
"deprecated": true |
||||
|
} |
||||
|
}, |
||||
|
"/pet/{petId}": { |
||||
|
"get": { |
||||
|
"tags": [ |
||||
|
"pet" |
||||
|
], |
||||
|
"summary": "Find pet by ID", |
||||
|
"description": "Returns a single pet", |
||||
|
"operationId": "getPetById", |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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 ID supplied" |
||||
|
}, |
||||
|
"404": { |
||||
|
"description": "Pet not found" |
||||
|
} |
||||
|
}, |
||||
|
"security": [ |
||||
|
{ |
||||
|
"petstore_auth": [ |
||||
|
"write:pets", |
||||
|
"read:pets" |
||||
|
] |
||||
|
} |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"/store/inventory": { |
||||
|
"get": { |
||||
|
"tags": [ |
||||
|
"store" |
||||
|
], |
||||
|
"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", |
||||
|
"consumes": [ |
||||
|
"application/json" |
||||
|
], |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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" |
||||
|
], |
||||
|
"summary": "Find purchase order by ID", |
||||
|
"description": "For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions", |
||||
|
"operationId": "getOrderById", |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"parameters": [ |
||||
|
{ |
||||
|
"name": "orderId", |
||||
|
"in": "path", |
||||
|
"description": "ID of pet that needs to be fetched", |
||||
|
"required": true, |
||||
|
"type": "integer", |
||||
|
"maximum": 10, |
||||
|
"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 positive integer value. Negative or non-integer values will generate API errors", |
||||
|
"operationId": "deleteOrder", |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"parameters": [ |
||||
|
{ |
||||
|
"name": "orderId", |
||||
|
"in": "path", |
||||
|
"description": "ID of the order that needs to be deleted", |
||||
|
"required": true, |
||||
|
"type": "integer", |
||||
|
"minimum": 1, |
||||
|
"format": "int64" |
||||
|
} |
||||
|
], |
||||
|
"responses": { |
||||
|
"400": { |
||||
|
"description": "Invalid ID supplied" |
||||
|
}, |
||||
|
"404": { |
||||
|
"description": "Order not found" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"/user/createWithList": { |
||||
|
"post": { |
||||
|
"tags": [ |
||||
|
"user" |
||||
|
], |
||||
|
"summary": "Creates list of users with given input array", |
||||
|
"description": "", |
||||
|
"operationId": "createUsersWithListInput", |
||||
|
"consumes": [ |
||||
|
"application/json" |
||||
|
], |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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/{username}": { |
||||
|
"get": { |
||||
|
"tags": [ |
||||
|
"user" |
||||
|
], |
||||
|
"summary": "Get user by user name", |
||||
|
"description": "", |
||||
|
"operationId": "getUserByName", |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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", |
||||
|
"consumes": [ |
||||
|
"application/json" |
||||
|
], |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"parameters": [ |
||||
|
{ |
||||
|
"name": "username", |
||||
|
"in": "path", |
||||
|
"description": "name that need to be updated", |
||||
|
"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/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"/user/login": { |
||||
|
"get": { |
||||
|
"tags": [ |
||||
|
"user" |
||||
|
], |
||||
|
"summary": "Logs user into the system", |
||||
|
"description": "", |
||||
|
"operationId": "loginUser", |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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", |
||||
|
"headers": { |
||||
|
"X-Expires-After": { |
||||
|
"type": "string", |
||||
|
"format": "date-time", |
||||
|
"description": "date in UTC when token expires" |
||||
|
}, |
||||
|
"X-Rate-Limit": { |
||||
|
"type": "integer", |
||||
|
"format": "int32", |
||||
|
"description": "calls per hour allowed by the user" |
||||
|
} |
||||
|
}, |
||||
|
"schema": { |
||||
|
"type": "string" |
||||
|
} |
||||
|
}, |
||||
|
"400": { |
||||
|
"description": "Invalid username/password supplied" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"/user/logout": { |
||||
|
"get": { |
||||
|
"tags": [ |
||||
|
"user" |
||||
|
], |
||||
|
"summary": "Logs out current logged in user session", |
||||
|
"description": "", |
||||
|
"operationId": "logoutUser", |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"parameters": [], |
||||
|
"responses": { |
||||
|
"default": { |
||||
|
"description": "successful operation" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"/user/createWithArray": { |
||||
|
"post": { |
||||
|
"tags": [ |
||||
|
"user" |
||||
|
], |
||||
|
"summary": "Creates list of users with given input array", |
||||
|
"description": "", |
||||
|
"operationId": "createUsersWithArrayInput", |
||||
|
"consumes": [ |
||||
|
"application/json" |
||||
|
], |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"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": { |
||||
|
"post": { |
||||
|
"tags": [ |
||||
|
"user" |
||||
|
], |
||||
|
"summary": "Create user", |
||||
|
"description": "This can only be done by the logged in user.", |
||||
|
"operationId": "createUser", |
||||
|
"consumes": [ |
||||
|
"application/json" |
||||
|
], |
||||
|
"produces": [ |
||||
|
"application/json", |
||||
|
"application/xml" |
||||
|
], |
||||
|
"parameters": [ |
||||
|
{ |
||||
|
"in": "body", |
||||
|
"name": "body", |
||||
|
"description": "Created user object", |
||||
|
"required": true, |
||||
|
"schema": { |
||||
|
"$ref": "#/definitions/User" |
||||
|
} |
||||
|
} |
||||
|
], |
||||
|
"responses": { |
||||
|
"default": { |
||||
|
"description": "successful operation" |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"securityDefinitions": { |
||||
|
"api_key": { |
||||
|
"type": "apiKey", |
||||
|
"name": "api_key", |
||||
|
"in": "header" |
||||
|
}, |
||||
|
"petstore_auth": { |
||||
|
"type": "oauth2", |
||||
|
"authorizationUrl": "https://petstore.swagger.io/oauth/authorize", |
||||
|
"flow": "implicit", |
||||
|
"scopes": { |
||||
|
"read:pets": "read your pets", |
||||
|
"write:pets": "modify pets in your account" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"definitions": { |
||||
|
"ApiResponse": { |
||||
|
"type": "object", |
||||
|
"properties": { |
||||
|
"code": { |
||||
|
"type": "integer", |
||||
|
"format": "int32" |
||||
|
}, |
||||
|
"type": { |
||||
|
"type": "string" |
||||
|
}, |
||||
|
"message": { |
||||
|
"type": "string" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"Category": { |
||||
|
"type": "object", |
||||
|
"properties": { |
||||
|
"id": { |
||||
|
"type": "integer", |
||||
|
"format": "int64" |
||||
|
}, |
||||
|
"name": { |
||||
|
"type": "string" |
||||
|
} |
||||
|
}, |
||||
|
"xml": { |
||||
|
"name": "Category" |
||||
|
} |
||||
|
}, |
||||
|
"Pet": { |
||||
|
"type": "object", |
||||
|
"required": [ |
||||
|
"name", |
||||
|
"photoUrls" |
||||
|
], |
||||
|
"properties": { |
||||
|
"id": { |
||||
|
"type": "integer", |
||||
|
"format": "int64" |
||||
|
}, |
||||
|
"category": { |
||||
|
"$ref": "#/definitions/Category" |
||||
|
}, |
||||
|
"name": { |
||||
|
"type": "string", |
||||
|
"example": "doggie" |
||||
|
}, |
||||
|
"photoUrls": { |
||||
|
"type": "array", |
||||
|
"xml": { |
||||
|
"wrapped": true |
||||
|
}, |
||||
|
"items": { |
||||
|
"type": "string", |
||||
|
"xml": { |
||||
|
"name": "photoUrl" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"tags": { |
||||
|
"type": "array", |
||||
|
"xml": { |
||||
|
"wrapped": true |
||||
|
}, |
||||
|
"items": { |
||||
|
"xml": { |
||||
|
"name": "tag" |
||||
|
}, |
||||
|
"$ref": "#/definitions/Tag" |
||||
|
} |
||||
|
}, |
||||
|
"status": { |
||||
|
"type": "string", |
||||
|
"description": "pet status in the store", |
||||
|
"enum": [ |
||||
|
"available", |
||||
|
"pending", |
||||
|
"sold" |
||||
|
] |
||||
|
} |
||||
|
}, |
||||
|
"xml": { |
||||
|
"name": "Pet" |
||||
|
} |
||||
|
}, |
||||
|
"Tag": { |
||||
|
"type": "object", |
||||
|
"properties": { |
||||
|
"id": { |
||||
|
"type": "integer", |
||||
|
"format": "int64" |
||||
|
}, |
||||
|
"name": { |
||||
|
"type": "string" |
||||
|
} |
||||
|
}, |
||||
|
"xml": { |
||||
|
"name": "Tag" |
||||
|
} |
||||
|
}, |
||||
|
"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" |
||||
|
} |
||||
|
}, |
||||
|
"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" |
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
"externalDocs": { |
||||
|
"description": "Find out more about Swagger", |
||||
|
"url": "http://swagger.io" |
||||
|
} |
||||
|
} |
||||
File diff suppressed because it is too large
@ -0,0 +1,711 @@ |
|||||
|
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.5 |
||||
|
title: Swagger Petstore |
||||
|
termsOfService: http://swagger.io/terms/ |
||||
|
contact: |
||||
|
email: apiteam@swagger.io |
||||
|
license: |
||||
|
name: Apache 2.0 |
||||
|
url: http://www.apache.org/licenses/LICENSE-2.0.html |
||||
|
host: petstore.swagger.io |
||||
|
basePath: /v2 |
||||
|
tags: |
||||
|
- 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: |
||||
|
- https |
||||
|
- http |
||||
|
paths: |
||||
|
/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 |
||||
|
/pet: |
||||
|
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: true |
||||
|
schema: |
||||
|
$ref: "#/definitions/Pet" |
||||
|
responses: |
||||
|
"405": |
||||
|
description: Invalid input |
||||
|
security: |
||||
|
- petstore_auth: |
||||
|
- write:pets |
||||
|
- read:pets |
||||
|
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: true |
||||
|
schema: |
||||
|
$ref: "#/definitions/Pet" |
||||
|
responses: |
||||
|
"400": |
||||
|
description: Invalid ID supplied |
||||
|
"404": |
||||
|
description: Pet not found |
||||
|
"405": |
||||
|
description: Validation exception |
||||
|
security: |
||||
|
- petstore_auth: |
||||
|
- write:pets |
||||
|
- read:pets |
||||
|
/pet/findByStatus: |
||||
|
get: |
||||
|
tags: |
||||
|
- pet |
||||
|
summary: Finds Pets by status |
||||
|
description: Multiple status values can be provided with comma separated strings |
||||
|
operationId: findPetsByStatus |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
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: multi |
||||
|
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 |
||||
|
summary: Finds Pets by tags |
||||
|
description: Multiple tags can be provided with comma separated strings. Use tag1, tag2, tag3 for testing. |
||||
|
operationId: findPetsByTags |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
parameters: |
||||
|
- name: tags |
||||
|
in: query |
||||
|
description: Tags to filter by |
||||
|
required: true |
||||
|
type: array |
||||
|
items: |
||||
|
type: string |
||||
|
collectionFormat: multi |
||||
|
responses: |
||||
|
"200": |
||||
|
description: successful operation |
||||
|
schema: |
||||
|
type: array |
||||
|
items: |
||||
|
$ref: "#/definitions/Pet" |
||||
|
"400": |
||||
|
description: Invalid tag value |
||||
|
security: |
||||
|
- petstore_auth: |
||||
|
- write:pets |
||||
|
- read:pets |
||||
|
deprecated: true |
||||
|
/pet/{petId}: |
||||
|
get: |
||||
|
tags: |
||||
|
- pet |
||||
|
summary: Find pet by ID |
||||
|
description: Returns a single pet |
||||
|
operationId: getPetById |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
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/json |
||||
|
- application/xml |
||||
|
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/json |
||||
|
- application/xml |
||||
|
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 ID supplied |
||||
|
"404": |
||||
|
description: Pet not found |
||||
|
security: |
||||
|
- petstore_auth: |
||||
|
- write:pets |
||||
|
- read:pets |
||||
|
/store/inventory: |
||||
|
get: |
||||
|
tags: |
||||
|
- store |
||||
|
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 |
||||
|
consumes: |
||||
|
- application/json |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
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 |
||||
|
summary: Find purchase order by ID |
||||
|
description: For valid response try integer IDs with value >= 1 and <= 10. Other values will generated exceptions |
||||
|
operationId: getOrderById |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
parameters: |
||||
|
- name: orderId |
||||
|
in: path |
||||
|
description: ID of pet that needs to be fetched |
||||
|
required: true |
||||
|
type: integer |
||||
|
maximum: 10 |
||||
|
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 positive integer value. Negative or non-integer values will generate API errors |
||||
|
operationId: deleteOrder |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
parameters: |
||||
|
- name: orderId |
||||
|
in: path |
||||
|
description: ID of the order that needs to be deleted |
||||
|
required: true |
||||
|
type: integer |
||||
|
minimum: 1 |
||||
|
format: int64 |
||||
|
responses: |
||||
|
"400": |
||||
|
description: Invalid ID supplied |
||||
|
"404": |
||||
|
description: Order not found |
||||
|
/user/createWithList: |
||||
|
post: |
||||
|
tags: |
||||
|
- user |
||||
|
summary: Creates list of users with given input array |
||||
|
description: "" |
||||
|
operationId: createUsersWithListInput |
||||
|
consumes: |
||||
|
- application/json |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
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/{username}: |
||||
|
get: |
||||
|
tags: |
||||
|
- user |
||||
|
summary: Get user by user name |
||||
|
description: "" |
||||
|
operationId: getUserByName |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
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 |
||||
|
consumes: |
||||
|
- application/json |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
parameters: |
||||
|
- name: username |
||||
|
in: path |
||||
|
description: name that need to be updated |
||||
|
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/json |
||||
|
- application/xml |
||||
|
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 |
||||
|
/user/login: |
||||
|
get: |
||||
|
tags: |
||||
|
- user |
||||
|
summary: Logs user into the system |
||||
|
description: "" |
||||
|
operationId: loginUser |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
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 |
||||
|
headers: |
||||
|
X-Expires-After: |
||||
|
type: string |
||||
|
format: date-time |
||||
|
description: date in UTC when token expires |
||||
|
X-Rate-Limit: |
||||
|
type: integer |
||||
|
format: int32 |
||||
|
description: calls per hour allowed by the user |
||||
|
schema: |
||||
|
type: string |
||||
|
"400": |
||||
|
description: Invalid username/password supplied |
||||
|
/user/logout: |
||||
|
get: |
||||
|
tags: |
||||
|
- user |
||||
|
summary: Logs out current logged in user session |
||||
|
description: "" |
||||
|
operationId: logoutUser |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
parameters: [] |
||||
|
responses: |
||||
|
default: |
||||
|
description: successful operation |
||||
|
/user/createWithArray: |
||||
|
post: |
||||
|
tags: |
||||
|
- user |
||||
|
summary: Creates list of users with given input array |
||||
|
description: "" |
||||
|
operationId: createUsersWithArrayInput |
||||
|
consumes: |
||||
|
- application/json |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
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: |
||||
|
post: |
||||
|
tags: |
||||
|
- user |
||||
|
summary: Create user |
||||
|
description: This can only be done by the logged in user. |
||||
|
operationId: createUser |
||||
|
consumes: |
||||
|
- application/json |
||||
|
produces: |
||||
|
- application/json |
||||
|
- application/xml |
||||
|
parameters: |
||||
|
- in: body |
||||
|
name: body |
||||
|
description: Created user object |
||||
|
required: true |
||||
|
schema: |
||||
|
$ref: "#/definitions/User" |
||||
|
responses: |
||||
|
default: |
||||
|
description: successful operation |
||||
|
securityDefinitions: |
||||
|
api_key: |
||||
|
type: apiKey |
||||
|
name: api_key |
||||
|
in: header |
||||
|
petstore_auth: |
||||
|
type: oauth2 |
||||
|
authorizationUrl: https://petstore.swagger.io/oauth/authorize |
||||
|
flow: implicit |
||||
|
scopes: |
||||
|
read:pets: read your pets |
||||
|
write:pets: modify pets in your account |
||||
|
definitions: |
||||
|
ApiResponse: |
||||
|
type: object |
||||
|
properties: |
||||
|
code: |
||||
|
type: integer |
||||
|
format: int32 |
||||
|
type: |
||||
|
type: string |
||||
|
message: |
||||
|
type: string |
||||
|
Category: |
||||
|
type: object |
||||
|
properties: |
||||
|
id: |
||||
|
type: integer |
||||
|
format: int64 |
||||
|
name: |
||||
|
type: string |
||||
|
xml: |
||||
|
name: Category |
||||
|
Pet: |
||||
|
type: object |
||||
|
required: |
||||
|
- name |
||||
|
- photoUrls |
||||
|
properties: |
||||
|
id: |
||||
|
type: integer |
||||
|
format: int64 |
||||
|
category: |
||||
|
$ref: "#/definitions/Category" |
||||
|
name: |
||||
|
type: string |
||||
|
example: doggie |
||||
|
photoUrls: |
||||
|
type: array |
||||
|
xml: |
||||
|
wrapped: true |
||||
|
items: |
||||
|
type: string |
||||
|
xml: |
||||
|
name: photoUrl |
||||
|
tags: |
||||
|
type: array |
||||
|
xml: |
||||
|
wrapped: true |
||||
|
items: |
||||
|
xml: |
||||
|
name: tag |
||||
|
$ref: "#/definitions/Tag" |
||||
|
status: |
||||
|
type: string |
||||
|
description: pet status in the store |
||||
|
enum: |
||||
|
- available |
||||
|
- pending |
||||
|
- sold |
||||
|
xml: |
||||
|
name: Pet |
||||
|
Tag: |
||||
|
type: object |
||||
|
properties: |
||||
|
id: |
||||
|
type: integer |
||||
|
format: int64 |
||||
|
name: |
||||
|
type: string |
||||
|
xml: |
||||
|
name: Tag |
||||
|
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 |
||||
|
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 |
||||
|
externalDocs: |
||||
|
description: Find out more about Swagger |
||||
|
url: http://swagger.io |
||||
@ -0,0 +1,113 @@ |
|||||
|
const { OpenAPI2 } = require("../../openapi2") |
||||
|
const fs = require("fs") |
||||
|
const path = require('path') |
||||
|
|
||||
|
const getData = (file, extension) => { |
||||
|
return fs.readFileSync(path.join(__dirname, `./data/${file}/${file}.${extension}`), "utf8") |
||||
|
} |
||||
|
|
||||
|
describe("OpenAPI2 Import", () => { |
||||
|
let openapi2 |
||||
|
|
||||
|
beforeEach(() => { |
||||
|
openapi2 = new OpenAPI2() |
||||
|
}) |
||||
|
|
||||
|
it("validates unsupported data", async () => { |
||||
|
let data |
||||
|
let supported |
||||
|
|
||||
|
// non json / yaml
|
||||
|
data = "curl http://example.com" |
||||
|
supported = await openapi2.isSupported(data) |
||||
|
expect(supported).toBe(false) |
||||
|
|
||||
|
// Empty
|
||||
|
data = "" |
||||
|
supported = await openapi2.isSupported(data) |
||||
|
expect(supported).toBe(false) |
||||
|
}) |
||||
|
|
||||
|
const init = async (file, extension) => { |
||||
|
await openapi2.isSupported(getData(file, extension)) |
||||
|
} |
||||
|
|
||||
|
const runTests = async (filename, test) => { |
||||
|
for (let extension of ["json", "yaml"]) { |
||||
|
await test(filename, extension) |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
const testImportInfo = async (file, extension) => { |
||||
|
await init(file, extension) |
||||
|
const info = await openapi2.getInfo() |
||||
|
expect(info.url).toBe("https://petstore.swagger.io/v2") |
||||
|
expect(info.name).toBe("Swagger Petstore") |
||||
|
} |
||||
|
|
||||
|
it("returns import info", async () => { |
||||
|
await runTests("petstore", testImportInfo) |
||||
|
}) |
||||
|
|
||||
|
describe("Returns queries", () => { |
||||
|
const getQueries = async (file) => { |
||||
|
await init(file) |
||||
|
const queries = await openapi2.getQueries() |
||||
|
expect(queries.length).toBe(1) |
||||
|
return queries |
||||
|
} |
||||
|
|
||||
|
const testVerb = async (file, verb) => { |
||||
|
const queries = await getQueries(file) |
||||
|
expect(queries[0].queryVerb).toBe(verb) |
||||
|
} |
||||
|
|
||||
|
it("populates verb", async () => { |
||||
|
await testVerb("get", "read") |
||||
|
await testVerb("post", "create") |
||||
|
await testVerb("put", "update") |
||||
|
await testVerb("delete", "delete") |
||||
|
await testVerb("patch", "patch") |
||||
|
}) |
||||
|
|
||||
|
const testPath = async (file, urlPath) => { |
||||
|
const queries = await getQueries(file) |
||||
|
expect(queries[0].fields.path).toBe(urlPath) |
||||
|
} |
||||
|
|
||||
|
it("populates path", async () => { |
||||
|
await testPath("get", "") |
||||
|
await testPath("path", "paths/abc") |
||||
|
}) |
||||
|
|
||||
|
const testHeaders = async (file, headers) => { |
||||
|
const queries = await getQueries(file) |
||||
|
expect(queries[0].fields.headers).toStrictEqual(headers) |
||||
|
} |
||||
|
|
||||
|
it("populates headers", async () => { |
||||
|
await testHeaders("get", {}) |
||||
|
await testHeaders("headers", { "x-bb-header-1" : "123", "x-bb-header-2" : "456"} ) |
||||
|
}) |
||||
|
|
||||
|
const testQuery = async (file, queryString) => { |
||||
|
const queries = await getQueries(file) |
||||
|
expect(queries[0].fields.queryString).toBe(queryString) |
||||
|
} |
||||
|
it("populates query", async () => { |
||||
|
await testQuery("get", "") |
||||
|
await testQuery("query", "q1=v1&q1=v2") |
||||
|
}) |
||||
|
|
||||
|
const testBody = async (file, queryString) => { |
||||
|
const queries = await getQueries(file) |
||||
|
expect(queries[0].fields.requestBody).toStrictEqual(queryString) |
||||
|
} |
||||
|
|
||||
|
it("populates body", async () => { |
||||
|
await testBody("get", undefined) |
||||
|
await testBody("post", { "key" : "val" }) |
||||
|
await testBody("empty-body", {}) |
||||
|
}) |
||||
|
}) |
||||
|
}) |
||||
Loading…
Reference in new issue