forked from loafle/openapi-generator-original
Merge pull request #1714 from wing328/ruby_sinatra_fix
[Ruby][Sinatra] fix bug with adding routes and add swagger.yaml
This commit is contained in:
commit
0d3fdba764
@ -1,5 +1,7 @@
|
||||
package io.swagger.codegen.languages;
|
||||
|
||||
import com.fasterxml.jackson.core.JsonProcessingException;
|
||||
|
||||
import io.swagger.codegen.CliOption;
|
||||
import io.swagger.codegen.CodegenConfig;
|
||||
import io.swagger.codegen.CodegenType;
|
||||
@ -8,10 +10,13 @@ import io.swagger.codegen.SupportingFile;
|
||||
import io.swagger.models.properties.ArrayProperty;
|
||||
import io.swagger.models.properties.MapProperty;
|
||||
import io.swagger.models.properties.Property;
|
||||
import io.swagger.models.Swagger;
|
||||
import io.swagger.util.Yaml;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Map;
|
||||
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
|
||||
@ -73,6 +78,7 @@ public class SinatraServerCodegen extends DefaultCodegen implements CodegenConfi
|
||||
supportingFiles.add(new SupportingFile("config.ru", "", "config.ru"));
|
||||
supportingFiles.add(new SupportingFile("Gemfile", "", "Gemfile"));
|
||||
supportingFiles.add(new SupportingFile("README.md", "", "README.md"));
|
||||
supportingFiles.add(new SupportingFile("swagger.mustache","","swagger.yaml"));
|
||||
}
|
||||
|
||||
public CodegenType getTag() {
|
||||
@ -213,5 +219,17 @@ public class SinatraServerCodegen extends DefaultCodegen implements CodegenConfi
|
||||
return underscore(operationId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> postProcessSupportingFileData(Map<String, Object> objs) {
|
||||
Swagger swagger = (Swagger)objs.get("swagger");
|
||||
if(swagger != null) {
|
||||
try {
|
||||
objs.put("swagger-yaml", Yaml.mapper().writeValueAsString(swagger));
|
||||
} catch (JsonProcessingException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
return super.postProcessSupportingFileData(objs);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -26,14 +26,22 @@ class Swaggering < Sinatra::Base
|
||||
cross_origin
|
||||
Swaggering.to_resource_listing
|
||||
}
|
||||
|
||||
# for swagger.yaml
|
||||
get("/swagger.yaml") {
|
||||
cross_origin
|
||||
File.read("./swagger.yaml");
|
||||
}
|
||||
|
||||
@@configuration ||= Configuration.new
|
||||
yield(@@configuration) if block_given?
|
||||
end
|
||||
|
||||
def self.add_route(method, path, swag={}, opts={}, &block)
|
||||
fullPath = swag["resourcePath"].to_s + @@configuration.format_specifier + path
|
||||
#fullPath = swag["resourcePath"].to_s + @@configuration.format_specifier + path
|
||||
fullPath = path.gsub(/{(.*?)}/, ':\1')
|
||||
|
||||
accepted = case method
|
||||
accepted = case method.to_s.downcase
|
||||
when 'get'
|
||||
get(fullPath, opts, &block)
|
||||
true
|
||||
@ -47,6 +55,7 @@ class Swaggering < Sinatra::Base
|
||||
put(fullPath, opts, &block)
|
||||
true
|
||||
else
|
||||
puts "Error adding route: #{method} #{fullPath}"
|
||||
false
|
||||
end
|
||||
|
||||
|
@ -3,7 +3,7 @@ require 'json'
|
||||
{{#operations}}
|
||||
{{#operation}}
|
||||
|
||||
MyApp.add_route('{{httpMethod}}', '{{path}}', {
|
||||
MyApp.add_route('{{httpMethod}}', '{{basePathWithoutHost}}{{path}}', {
|
||||
"resourcePath" => "/{{baseName}}",
|
||||
"summary" => "{{{summary}}}",
|
||||
"nickname" => "{{nickname}}",
|
||||
|
@ -7,6 +7,7 @@ class MyApp < Swaggering
|
||||
end
|
||||
end
|
||||
|
||||
{{#apis}}
|
||||
require './lib/{{className}}.rb'
|
||||
{{/apis}}
|
||||
# include the api files
|
||||
Dir["./api/*.rb"].each { |file|
|
||||
require file
|
||||
}
|
||||
|
@ -0,0 +1 @@
|
||||
{{{swagger-yaml}}}
|
@ -1,7 +1,7 @@
|
||||
require 'json'
|
||||
|
||||
|
||||
MyApp.add_route('PUT', '/pet', {
|
||||
MyApp.add_route('PUT', '/v2/pet', {
|
||||
"resourcePath" => "/Pet",
|
||||
"summary" => "Update an existing pet",
|
||||
"nickname" => "update_pet",
|
||||
@ -28,7 +28,7 @@ MyApp.add_route('PUT', '/pet', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('POST', '/pet', {
|
||||
MyApp.add_route('POST', '/v2/pet', {
|
||||
"resourcePath" => "/Pet",
|
||||
"summary" => "Add a new pet to the store",
|
||||
"nickname" => "add_pet",
|
||||
@ -55,7 +55,7 @@ MyApp.add_route('POST', '/pet', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('GET', '/pet/findByStatus', {
|
||||
MyApp.add_route('GET', '/v2/pet/findByStatus', {
|
||||
"resourcePath" => "/Pet",
|
||||
"summary" => "Finds Pets by status",
|
||||
"nickname" => "find_pets_by_status",
|
||||
@ -85,7 +85,7 @@ MyApp.add_route('GET', '/pet/findByStatus', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('GET', '/pet/findByTags', {
|
||||
MyApp.add_route('GET', '/v2/pet/findByTags', {
|
||||
"resourcePath" => "/Pet",
|
||||
"summary" => "Finds Pets by tags",
|
||||
"nickname" => "find_pets_by_tags",
|
||||
@ -115,7 +115,7 @@ MyApp.add_route('GET', '/pet/findByTags', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('GET', '/pet/{petId}', {
|
||||
MyApp.add_route('GET', '/v2/pet/{petId}', {
|
||||
"resourcePath" => "/Pet",
|
||||
"summary" => "Find pet by ID",
|
||||
"nickname" => "get_pet_by_id",
|
||||
@ -142,7 +142,7 @@ MyApp.add_route('GET', '/pet/{petId}', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('POST', '/pet/{petId}', {
|
||||
MyApp.add_route('POST', '/v2/pet/{petId}', {
|
||||
"resourcePath" => "/Pet",
|
||||
"summary" => "Updates a pet in the store with form data",
|
||||
"nickname" => "update_pet_with_form",
|
||||
@ -169,7 +169,7 @@ MyApp.add_route('POST', '/pet/{petId}', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('DELETE', '/pet/{petId}', {
|
||||
MyApp.add_route('DELETE', '/v2/pet/{petId}', {
|
||||
"resourcePath" => "/Pet",
|
||||
"summary" => "Deletes a pet",
|
||||
"nickname" => "delete_pet",
|
||||
@ -203,7 +203,7 @@ MyApp.add_route('DELETE', '/pet/{petId}', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('POST', '/pet/{petId}/uploadImage', {
|
||||
MyApp.add_route('POST', '/v2/pet/{petId}/uploadImage', {
|
||||
"resourcePath" => "/Pet",
|
||||
"summary" => "uploads an image",
|
||||
"nickname" => "upload_file",
|
||||
|
@ -1,7 +1,7 @@
|
||||
require 'json'
|
||||
|
||||
|
||||
MyApp.add_route('GET', '/store/inventory', {
|
||||
MyApp.add_route('GET', '/v2/store/inventory', {
|
||||
"resourcePath" => "/Store",
|
||||
"summary" => "Returns pet inventories by status",
|
||||
"nickname" => "get_inventory",
|
||||
@ -21,7 +21,7 @@ MyApp.add_route('GET', '/store/inventory', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('POST', '/store/order', {
|
||||
MyApp.add_route('POST', '/v2/store/order', {
|
||||
"resourcePath" => "/Store",
|
||||
"summary" => "Place an order for a pet",
|
||||
"nickname" => "place_order",
|
||||
@ -48,7 +48,7 @@ MyApp.add_route('POST', '/store/order', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('GET', '/store/order/{orderId}', {
|
||||
MyApp.add_route('GET', '/v2/store/order/{orderId}', {
|
||||
"resourcePath" => "/Store",
|
||||
"summary" => "Find purchase order by ID",
|
||||
"nickname" => "get_order_by_id",
|
||||
@ -75,7 +75,7 @@ MyApp.add_route('GET', '/store/order/{orderId}', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('DELETE', '/store/order/{orderId}', {
|
||||
MyApp.add_route('DELETE', '/v2/store/order/{orderId}', {
|
||||
"resourcePath" => "/Store",
|
||||
"summary" => "Delete purchase order by ID",
|
||||
"nickname" => "delete_order",
|
||||
|
@ -1,7 +1,7 @@
|
||||
require 'json'
|
||||
|
||||
|
||||
MyApp.add_route('POST', '/user', {
|
||||
MyApp.add_route('POST', '/v2/user', {
|
||||
"resourcePath" => "/User",
|
||||
"summary" => "Create user",
|
||||
"nickname" => "create_user",
|
||||
@ -28,7 +28,7 @@ MyApp.add_route('POST', '/user', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('POST', '/user/createWithArray', {
|
||||
MyApp.add_route('POST', '/v2/user/createWithArray', {
|
||||
"resourcePath" => "/User",
|
||||
"summary" => "Creates list of users with given input array",
|
||||
"nickname" => "create_users_with_array_input",
|
||||
@ -55,7 +55,7 @@ MyApp.add_route('POST', '/user/createWithArray', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('POST', '/user/createWithList', {
|
||||
MyApp.add_route('POST', '/v2/user/createWithList', {
|
||||
"resourcePath" => "/User",
|
||||
"summary" => "Creates list of users with given input array",
|
||||
"nickname" => "create_users_with_list_input",
|
||||
@ -82,7 +82,7 @@ MyApp.add_route('POST', '/user/createWithList', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('GET', '/user/login', {
|
||||
MyApp.add_route('GET', '/v2/user/login', {
|
||||
"resourcePath" => "/User",
|
||||
"summary" => "Logs user into the system",
|
||||
"nickname" => "login_user",
|
||||
@ -122,7 +122,7 @@ MyApp.add_route('GET', '/user/login', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('GET', '/user/logout', {
|
||||
MyApp.add_route('GET', '/v2/user/logout', {
|
||||
"resourcePath" => "/User",
|
||||
"summary" => "Logs out current logged in user session",
|
||||
"nickname" => "logout_user",
|
||||
@ -142,7 +142,7 @@ MyApp.add_route('GET', '/user/logout', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('GET', '/user/{username}', {
|
||||
MyApp.add_route('GET', '/v2/user/{username}', {
|
||||
"resourcePath" => "/User",
|
||||
"summary" => "Get user by user name",
|
||||
"nickname" => "get_user_by_name",
|
||||
@ -154,7 +154,7 @@ MyApp.add_route('GET', '/user/{username}', {
|
||||
|
||||
{
|
||||
"name" => "username",
|
||||
"description" => "The name that needs to be fetched. Use user1 for testing. ",
|
||||
"description" => "The name that needs to be fetched. Use user1 for testing.",
|
||||
"dataType" => "string",
|
||||
"paramType" => "path",
|
||||
},
|
||||
@ -169,7 +169,7 @@ MyApp.add_route('GET', '/user/{username}', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('PUT', '/user/{username}', {
|
||||
MyApp.add_route('PUT', '/v2/user/{username}', {
|
||||
"resourcePath" => "/User",
|
||||
"summary" => "Updated user",
|
||||
"nickname" => "update_user",
|
||||
@ -203,7 +203,7 @@ MyApp.add_route('PUT', '/user/{username}', {
|
||||
end
|
||||
|
||||
|
||||
MyApp.add_route('DELETE', '/user/{username}', {
|
||||
MyApp.add_route('DELETE', '/v2/user/{username}', {
|
||||
"resourcePath" => "/User",
|
||||
"summary" => "Delete user",
|
||||
"nickname" => "delete_user",
|
||||
|
@ -26,14 +26,22 @@ class Swaggering < Sinatra::Base
|
||||
cross_origin
|
||||
Swaggering.to_resource_listing
|
||||
}
|
||||
|
||||
# for swagger.yaml
|
||||
get("/swagger.yaml") {
|
||||
cross_origin
|
||||
File.read("./swagger.yaml");
|
||||
}
|
||||
|
||||
@@configuration ||= Configuration.new
|
||||
yield(@@configuration) if block_given?
|
||||
end
|
||||
|
||||
def self.add_route(method, path, swag={}, opts={}, &block)
|
||||
fullPath = swag["resourcePath"].to_s + @@configuration.format_specifier + path
|
||||
#fullPath = swag["resourcePath"].to_s + @@configuration.format_specifier + path
|
||||
fullPath = path.gsub(/{(.*)}/, ':\1')
|
||||
|
||||
accepted = case method
|
||||
accepted = case method.to_s.downcase
|
||||
when 'get'
|
||||
get(fullPath, opts, &block)
|
||||
true
|
||||
@ -47,6 +55,7 @@ class Swaggering < Sinatra::Base
|
||||
put(fullPath, opts, &block)
|
||||
true
|
||||
else
|
||||
puts "Error adding route: #{method} #{fullPath}"
|
||||
false
|
||||
end
|
||||
|
||||
|
@ -7,3 +7,7 @@ class MyApp < Swaggering
|
||||
end
|
||||
end
|
||||
|
||||
# include the api files
|
||||
Dir["./api/*.rb"].each { |file|
|
||||
require file
|
||||
}
|
||||
|
667
samples/server/petstore/sinatra/swagger.yaml
Normal file
667
samples/server/petstore/sinatra/swagger.yaml
Normal file
@ -0,0 +1,667 @@
|
||||
---
|
||||
swagger: "2.0"
|
||||
info:
|
||||
description: "This is a sample server Petstore server. You can find out more about\
|
||||
\ Swagger at <a href=\"http://swagger.io\">http://swagger.io</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 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"
|
||||
schemes:
|
||||
- "http"
|
||||
paths:
|
||||
/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: false
|
||||
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: false
|
||||
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 seperated strings"
|
||||
operationId: "findPetsByStatus"
|
||||
produces:
|
||||
- "application/json"
|
||||
- "application/xml"
|
||||
parameters:
|
||||
- name: "status"
|
||||
in: "query"
|
||||
description: "Status values that need to be considered for filter"
|
||||
required: false
|
||||
type: "array"
|
||||
items:
|
||||
type: "string"
|
||||
collectionFormat: "multi"
|
||||
default: "available"
|
||||
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: "Muliple tags can be provided with comma seperated 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: false
|
||||
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"
|
||||
/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:
|
||||
- name: "petId"
|
||||
in: "path"
|
||||
description: "ID of pet that needs to be fetched"
|
||||
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: []
|
||||
- petstore_auth:
|
||||
- "write:pets"
|
||||
- "read:pets"
|
||||
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: "string"
|
||||
- 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"
|
||||
description: ""
|
||||
required: false
|
||||
type: "string"
|
||||
- name: "petId"
|
||||
in: "path"
|
||||
description: "Pet id to delete"
|
||||
required: true
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
responses:
|
||||
400:
|
||||
description: "Invalid pet value"
|
||||
security:
|
||||
- petstore_auth:
|
||||
- "write:pets"
|
||||
- "read:pets"
|
||||
/pet/{petId}/uploadImage:
|
||||
post:
|
||||
tags:
|
||||
- "pet"
|
||||
summary: "uploads an image"
|
||||
description: ""
|
||||
operationId: "uploadFile"
|
||||
consumes:
|
||||
- "multipart/form-data"
|
||||
produces:
|
||||
- "application/json"
|
||||
- "application/xml"
|
||||
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:
|
||||
default:
|
||||
description: "successful operation"
|
||||
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"
|
||||
- "application/xml"
|
||||
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"
|
||||
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"
|
||||
/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:
|
||||
- name: "orderId"
|
||||
in: "path"
|
||||
description: "ID of pet that needs to be fetched"
|
||||
required: true
|
||||
type: "string"
|
||||
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 value < 1000. Anything\
|
||||
\ above 1000 or nonintegers 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: "string"
|
||||
responses:
|
||||
400:
|
||||
description: "Invalid ID supplied"
|
||||
404:
|
||||
description: "Order not found"
|
||||
/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/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
|
||||
schema:
|
||||
type: "array"
|
||||
items:
|
||||
$ref: "#/definitions/User"
|
||||
responses:
|
||||
default:
|
||||
description: "successful operation"
|
||||
/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:
|
||||
type: "array"
|
||||
items:
|
||||
$ref: "#/definitions/User"
|
||||
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:
|
||||
- name: "username"
|
||||
in: "query"
|
||||
description: "The user name for login"
|
||||
required: false
|
||||
type: "string"
|
||||
- name: "password"
|
||||
in: "query"
|
||||
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"
|
||||
/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/{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"
|
||||
examples:
|
||||
application/json:
|
||||
id: 1
|
||||
username: "johnp"
|
||||
firstName: "John"
|
||||
lastName: "Public"
|
||||
email: "johnp@swagger.io"
|
||||
password: "-secret-"
|
||||
phone: "0123456789"
|
||||
userStatus: 0
|
||||
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"
|
||||
produces:
|
||||
- "application/json"
|
||||
- "application/xml"
|
||||
parameters:
|
||||
- name: "username"
|
||||
in: "path"
|
||||
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:
|
||||
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"
|
||||
securityDefinitions:
|
||||
api_key:
|
||||
type: "apiKey"
|
||||
name: "api_key"
|
||||
in: "header"
|
||||
petstore_auth:
|
||||
type: "oauth2"
|
||||
authorizationUrl: "http://petstore.swagger.io/api/oauth/dialog"
|
||||
flow: "implicit"
|
||||
scopes:
|
||||
write:pets: "modify pets in your account"
|
||||
read:pets: "read your pets"
|
||||
definitions:
|
||||
User:
|
||||
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"
|
||||
Category:
|
||||
properties:
|
||||
id:
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
name:
|
||||
type: "string"
|
||||
xml:
|
||||
name: "Category"
|
||||
Pet:
|
||||
required:
|
||||
- "name"
|
||||
- "photoUrls"
|
||||
properties:
|
||||
id:
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
category:
|
||||
$ref: "#/definitions/Category"
|
||||
name:
|
||||
type: "string"
|
||||
example: "doggie"
|
||||
photoUrls:
|
||||
type: "array"
|
||||
xml:
|
||||
name: "photoUrl"
|
||||
wrapped: true
|
||||
items:
|
||||
type: "string"
|
||||
tags:
|
||||
type: "array"
|
||||
xml:
|
||||
name: "tag"
|
||||
wrapped: true
|
||||
items:
|
||||
$ref: "#/definitions/Tag"
|
||||
status:
|
||||
type: "string"
|
||||
description: "pet status in the store"
|
||||
enum:
|
||||
- "available"
|
||||
- "pending"
|
||||
- "sold"
|
||||
xml:
|
||||
name: "Pet"
|
||||
Tag:
|
||||
properties:
|
||||
id:
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
name:
|
||||
type: "string"
|
||||
xml:
|
||||
name: "Tag"
|
||||
Order:
|
||||
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"
|
Loading…
x
Reference in New Issue
Block a user