update ruby client to support form parameters, add PATCH support, update

ruby petstore client
This commit is contained in:
William Cheng 2015-03-17 05:24:43 +08:00
parent c96853d5aa
commit fc9d632522
6 changed files with 215 additions and 73 deletions

View File

@ -37,14 +37,15 @@ class {{classname}}
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
{{#headerParams}}headers = { {{#headerParams}}headers = {
{{{paramName}}}: {{{paramName}}}, {{{paramName}}}: {{{paramName}}},
} }
{{/headerParams}} {{/headerParams}}
{{^headerParams}}headers = nil {{^headerParams}}headers = nil
{{/headerParams}} {{/headerParams}}
# http body (model)
post_body = nil post_body = nil
{{#bodyParam}} {{#bodyParam}}
if body != nil if body != nil
@ -69,17 +70,22 @@ class {{classname}}
end end
{{/bodyParam}} {{/bodyParam}}
# form parameters
form_parameter_hash = {}
{{#formParams}}{{#optional}}form_parameter_hash["{{baseName}}"] = options[:'{{paramName}}'] if options[:'{{paramName}}']{{/optional}}
{{^optional}}form_parameter_hash["{{baseName}}"] = {{paramName}}{{/optional}}{{/formParams}}
{{#returnType}} {{#returnType}}
response = Swagger::Request.new(:{{httpMethod}}, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body response = Swagger::Request.new(:{{httpMethod}}, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
{{#returnContainer}} {{#returnContainer}}
response.map {|response|{{/returnContainer}} {{returnBaseType}}.new(response){{#returnContainer}} }{{/returnContainer}} response.map {|response|{{/returnContainer}} {{returnBaseType}}.new(response){{#returnContainer}} }{{/returnContainer}}
{{/returnType}} {{/returnType}}
{{^returnType}} {{^returnType}}
Swagger::Request.new(:{{httpMethod}}, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:{{httpMethod}}, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
{{/returnType}} {{/returnType}}
{{newline}} {{newline}}
end end
{{/operation}} {{/operation}}
end end
{{/operations}} {{/operations}}

View File

@ -6,7 +6,7 @@ module Swagger
require 'typhoeus' require 'typhoeus'
require "swagger/version" require "swagger/version"
attr_accessor :host, :path, :format, :params, :body, :http_method, :headers attr_accessor :host, :path, :format, :params, :body, :http_method, :headers, :form_params
# All requests must have an HTTP method and a path # All requests must have an HTTP method and a path
@ -115,9 +115,18 @@ module Swagger
end end
# If body is an object, JSONify it before making the actual request. # If body is an object, JSONify it before making the actual request.
# # For form parameters, remove empty value
def outgoing_body def outgoing_body
body.is_a?(String) ? body : body.to_json # http form
if @body.nil? && @form_params && !@form_params.empty?
data = form_params.dup
data.each do |key, value|
data[key] = value.to_s if value && !value.is_a?(File) # remove emtpy form parameter
end
data
else # http body is JSON
@body.is_a?(String) ? @body : @body.to_json
end
end end
# Construct a query string from the query-string-type params # Construct a query string from the query-string-type params
@ -163,6 +172,13 @@ module Swagger
:headers => self.headers.stringify_keys, :headers => self.headers.stringify_keys,
) )
when :patch,:PATCH
Typhoeus::Request.patch(
self.url,
:body => self.outgoing_body,
:headers => self.headers.stringify_keys,
)
when :put,:PUT when :put,:PUT
Typhoeus::Request.put( Typhoeus::Request.put(
self.url, self.url,
@ -196,4 +212,4 @@ module Swagger
end end
end end
end end

View File

@ -28,11 +28,12 @@ class PetApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
if body != nil if body != nil
@ -57,9 +58,13 @@ class PetApi
end end
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end
@ -84,11 +89,12 @@ class PetApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
if body != nil if body != nil
@ -113,9 +119,13 @@ class PetApi
end end
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end
@ -140,16 +150,21 @@ class PetApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
response.map {|response| Pet.new(response) } response.map {|response| Pet.new(response) }
@ -177,16 +192,21 @@ class PetApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
response.map {|response| Pet.new(response) } response.map {|response| Pet.new(response) }
@ -215,16 +235,21 @@ class PetApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
Pet.new(response) Pet.new(response)
@ -258,17 +283,24 @@ class PetApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
form_parameter_hash["name"] = name
form_parameter_hash["status"] = status
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end
@ -297,19 +329,24 @@ class PetApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = { headers = {
api_key: api_key, api_key: api_key,
} }
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end
@ -341,17 +378,24 @@ class PetApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
form_parameter_hash["additionalMetadata"] = additionalMetadata
form_parameter_hash["file"] = file
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end

View File

@ -26,16 +26,21 @@ class StoreApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
response.map {|response| map.new(response) } response.map {|response| map.new(response) }
@ -63,11 +68,12 @@ class StoreApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
if body != nil if body != nil
@ -92,8 +98,12 @@ class StoreApi
end end
# form parameters
form_parameter_hash = {}
response = Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
response = Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
Order.new(response) Order.new(response)
@ -121,16 +131,21 @@ class StoreApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
Order.new(response) Order.new(response)
@ -158,17 +173,22 @@ class StoreApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end

View File

@ -28,11 +28,12 @@ class UserApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
if body != nil if body != nil
@ -57,9 +58,13 @@ class UserApi
end end
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end
@ -84,11 +89,12 @@ class UserApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
if body != nil if body != nil
@ -113,9 +119,13 @@ class UserApi
end end
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end
@ -140,11 +150,12 @@ class UserApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
if body != nil if body != nil
@ -169,9 +180,13 @@ class UserApi
end end
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end
@ -199,16 +214,21 @@ class UserApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
string.new(response) string.new(response)
@ -233,17 +253,22 @@ class UserApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end
@ -269,16 +294,21 @@ class UserApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body
User.new(response) User.new(response)
@ -309,11 +339,12 @@ class UserApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
if body != nil if body != nil
@ -338,9 +369,13 @@ class UserApi
end end
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end
@ -366,17 +401,22 @@ class UserApi
queryopts = options.select do |key,value| queryopts = options.select do |key,value|
query_param_keys.include? key query_param_keys.include? key
end end
headers = nil headers = nil
# http body (model)
post_body = nil post_body = nil
# form parameters
form_parameter_hash = {}
Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make
end end

View File

@ -6,7 +6,7 @@ module Swagger
require 'typhoeus' require 'typhoeus'
require "swagger/version" require "swagger/version"
attr_accessor :host, :path, :format, :params, :body, :http_method, :headers attr_accessor :host, :path, :format, :params, :body, :http_method, :headers, :form_params
# All requests must have an HTTP method and a path # All requests must have an HTTP method and a path
@ -115,9 +115,18 @@ module Swagger
end end
# If body is an object, JSONify it before making the actual request. # If body is an object, JSONify it before making the actual request.
# # For form parameters, remove empty value
def outgoing_body def outgoing_body
body.is_a?(String) ? body : body.to_json # http form
if @body.nil? && @form_params && !@form_params.empty?
data = form_params.dup
data.each do |key, value|
data[key] = value.to_s if value && !value.is_a?(File) # remove emtpy form parameter
end
data
else # http body is JSON
@body.is_a?(String) ? @body : @body.to_json
end
end end
# Construct a query string from the query-string-type params # Construct a query string from the query-string-type params
@ -163,6 +172,13 @@ module Swagger
:headers => self.headers.stringify_keys, :headers => self.headers.stringify_keys,
) )
when :patch,:PATCH
Typhoeus::Request.patch(
self.url,
:body => self.outgoing_body,
:headers => self.headers.stringify_keys,
)
when :put,:PUT when :put,:PUT
Typhoeus::Request.put( Typhoeus::Request.put(
self.url, self.url,
@ -196,4 +212,4 @@ module Swagger
end end
end end
end end