From e782ea2c050e4349e19245d93509ca69efc62567 Mon Sep 17 00:00:00 2001 From: James Ebentier Date: Fri, 20 Mar 2015 14:45:12 -0700 Subject: [PATCH 1/7] Default Headers: allowing the setting of defaultHeaders on ApiClient --- .../src/main/resources/php/Swagger.mustache | 32 +++++++++++++------ 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/php/Swagger.mustache b/modules/swagger-codegen/src/main/resources/php/Swagger.mustache index a7a18866345..dfc672b37ad 100644 --- a/modules/swagger-codegen/src/main/resources/php/Swagger.mustache +++ b/modules/swagger-codegen/src/main/resources/php/Swagger.mustache @@ -38,14 +38,24 @@ class APIClient { public static $PUT = "PUT"; public static $DELETE = "DELETE"; + /** + * @var string $host Host URL + */ + public $host; + + /** + * @var array $defaultHeaders Array of Headers you would like applied to all requests with this client + */ + public $defaultHeaders; + /** * @param string $host the address of the API server * @param string $headerName a header to pass on requests + * @param string $headerValue the value of the header to pass on requests */ function __construct($host, $headerName = null, $headerValue = null) { $this->host = $host; - $this->headerName = $headerName; - $this->headerValue = $headerValue; + $this->defaultHeaders[$headerName] = $headerValue; } /** @@ -58,6 +68,14 @@ class APIClient { $this->curl_timout = $seconds; } + /** + * @param string $headerName a header to pass on requests + * @param string $headerValue the value of the header to pass on requests + */ + public function setDefaultHeader($headerName, $headerValue) { + $this->defaultHeaders[$headerName] = $headerValue; + } + /** * @param string $resourcePath path to method endpoint @@ -72,19 +90,13 @@ class APIClient { $headers = array(); - # Allow API key from $headerParams to override default - $added_api_key = False; + # Allow headers passed in through $headerParams to take president over $this->defaultHeaders + $headerParams = array_merge($this->defaultHeaders, $headerParams); if ($headerParams != null) { foreach ($headerParams as $key => $val) { $headers[] = "$key: $val"; - if ($key == $this->headerName) { - $added_api_key = True; - } } } - if (! $added_api_key && $this->headerName != null) { - $headers[] = $this->headerName . ": " . $this->headerValue; - } if (strpos($headers['Content-Type'], "multipart/form-data") < 0 and (is_object($postData) or is_array($postData))) { $postData = json_encode($this->sanitizeForSerialization($postData)); From 0c3f06604d0c8bb2bcc31d1e5e77cee5511a37ae Mon Sep 17 00:00:00 2001 From: James Ebentier Date: Fri, 20 Mar 2015 14:54:53 -0700 Subject: [PATCH 2/7] Correcting spelling error in comment --- modules/swagger-codegen/src/main/resources/php/Swagger.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/php/Swagger.mustache b/modules/swagger-codegen/src/main/resources/php/Swagger.mustache index dfc672b37ad..8eb65da83aa 100644 --- a/modules/swagger-codegen/src/main/resources/php/Swagger.mustache +++ b/modules/swagger-codegen/src/main/resources/php/Swagger.mustache @@ -90,7 +90,7 @@ class APIClient { $headers = array(); - # Allow headers passed in through $headerParams to take president over $this->defaultHeaders + # Allow headers passed in through $headerParams to take precedent over $this->defaultHeaders $headerParams = array_merge($this->defaultHeaders, $headerParams); if ($headerParams != null) { foreach ($headerParams as $key => $val) { From 8323fdf8e88ae977b6cd2a7b1cc4725599e912a2 Mon Sep 17 00:00:00 2001 From: James Ebentier Date: Fri, 20 Mar 2015 14:45:12 -0700 Subject: [PATCH 3/7] Fixing deserialization bug in PHP bindings --- modules/swagger-codegen/src/main/resources/php/Swagger.mustache | 1 + 1 file changed, 1 insertion(+) diff --git a/modules/swagger-codegen/src/main/resources/php/Swagger.mustache b/modules/swagger-codegen/src/main/resources/php/Swagger.mustache index 8eb65da83aa..c4c7f12b6a5 100644 --- a/modules/swagger-codegen/src/main/resources/php/Swagger.mustache +++ b/modules/swagger-codegen/src/main/resources/php/Swagger.mustache @@ -248,6 +248,7 @@ class APIClient { } elseif ($class == 'DateTime') { $deserialized = new \DateTime($data); } elseif (in_array($class, array('string', 'int', 'float', 'bool'))) { + $data = (is_object($data) || is_array($data)) ? json_encode($data) : $data; settype($data, $class); $deserialized = $data; } else { From 12d4e812a6cb10cd3577741708e2c47f08fa03bc Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Mon, 6 Apr 2015 08:02:02 -0600 Subject: [PATCH 4/7] removed samples --- samples/client/petstore/ruby/lib/pet_api.rb | 462 ----------------- samples/client/petstore/ruby/lib/store_api.rb | 227 -------- samples/client/petstore/ruby/lib/user_api.rb | 486 ------------------ 3 files changed, 1175 deletions(-) delete mode 100644 samples/client/petstore/ruby/lib/pet_api.rb delete mode 100644 samples/client/petstore/ruby/lib/store_api.rb delete mode 100644 samples/client/petstore/ruby/lib/user_api.rb diff --git a/samples/client/petstore/ruby/lib/pet_api.rb b/samples/client/petstore/ruby/lib/pet_api.rb deleted file mode 100644 index 8bb98d4efb1..00000000000 --- a/samples/client/petstore/ruby/lib/pet_api.rb +++ /dev/null @@ -1,462 +0,0 @@ -require "uri" - -class PetApi - basePath = "http://petstore.swagger.io/v2" - # apiInvoker = APIInvoker - - - # Update an existing pet - # - # @param body Pet object that needs to be added to the store - # @return void - def self.updatePet (body, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'body' => body - - }.merge(opts) - - #resource path - path = "/pet".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = ['application/json', 'application/xml', ] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - if body != nil - if body.is_a?(Array) - array = Array.new - body.each do |item| - if item.respond_to?("to_body".to_sym) - array.push item.to_body - else - array.push item - end - end - post_body = array - else - if body.respond_to?("to_body".to_sym) - post_body = body.to_body - else - post_body = body - end - end - end - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end - - # Add a new pet to the store - # - # @param body Pet object that needs to be added to the store - # @return void - def self.addPet (body, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'body' => body - - }.merge(opts) - - #resource path - path = "/pet".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = ['application/json', 'application/xml', ] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - if body != nil - if body.is_a?(Array) - array = Array.new - body.each do |item| - if item.respond_to?("to_body".to_sym) - array.push item.to_body - else - array.push item - end - end - post_body = array - else - if body.respond_to?("to_body".to_sym) - post_body = body.to_body - else - post_body = body - end - end - end - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end - - # Finds Pets by status - # Multiple status values can be provided with comma seperated strings - # @param status Status values that need to be considered for filter - # @return array[Pet] - def self.findPetsByStatus (status, opts={}) - query_param_keys = [:status] - headerParams = {} - - - - # set default values and merge with input - options = { - :'status' => status - - }.merge(opts) - - #resource path - path = "/pet/findByStatus".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - 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) } - - - - end - - # Finds Pets by tags - # Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing. - # @param tags Tags to filter by - # @return array[Pet] - def self.findPetsByTags (tags, opts={}) - query_param_keys = [:tags] - headerParams = {} - - - - # set default values and merge with input - options = { - :'tags' => tags - - }.merge(opts) - - #resource path - path = "/pet/findByTags".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - 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) } - - - - end - - # Find pet by ID - # Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions - # @param pet_id ID of pet that needs to be fetched - # @return Pet - def self.getPetById (pet_id, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'pet_id' => pet_id - - }.merge(opts) - - #resource path - path = "/pet/{petId}".sub('{format}','json').sub('{' + 'petId' + '}', pet_id.to_s) - - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body - Pet.new(response) - - - - end - - # Updates a pet in the store with form data - # - # @param pet_id ID of pet that needs to be updated - # @param name Updated name of the pet - # @param status Updated status of the pet - # @return void - def self.updatePetWithForm (pet_id, name, status, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'pet_id' => pet_id, - :'name' => name, - :'status' => status - - }.merge(opts) - - #resource path - path = "/pet/{petId}".sub('{format}','json').sub('{' + 'petId' + '}', pet_id.to_s) - - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = ['application/x-www-form-urlencoded', ] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - 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, :form_params => form_parameter_hash }).make - - - end - - # Deletes a pet - # - # @param api_key - # @param pet_id Pet id to delete - # @return void - def self.deletePet (api_key, pet_id, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'api_key' => api_key, - :'pet_id' => pet_id - - }.merge(opts) - - #resource path - path = "/pet/{petId}".sub('{format}','json').sub('{' + 'petId' + '}', pet_id.to_s) - - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - headers[:'api_key'] = api_key - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end - - # uploads an image - # - # @param pet_id ID of pet to update - # @param additional_metadata Additional data to pass to server - # @param file file to upload - # @return void - def self.uploadFile (pet_id, additional_metadata, file, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'pet_id' => pet_id, - :'additional_metadata' => additional_metadata, - :'file' => file - - }.merge(opts) - - #resource path - path = "/pet/{petId}/uploadImage".sub('{format}','json').sub('{' + 'petId' + '}', pet_id.to_s) - - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = ['multipart/form-data', ] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - form_parameter_hash["additionalMetadata"] = additional_metadata - form_parameter_hash["file"] = file - - - Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end -end diff --git a/samples/client/petstore/ruby/lib/store_api.rb b/samples/client/petstore/ruby/lib/store_api.rb deleted file mode 100644 index bb1ece99f3c..00000000000 --- a/samples/client/petstore/ruby/lib/store_api.rb +++ /dev/null @@ -1,227 +0,0 @@ -require "uri" - -class StoreApi - basePath = "http://petstore.swagger.io/v2" - # apiInvoker = APIInvoker - - - # Returns pet inventories by status - # Returns a map of status codes to quantities - # @return map[string,int] - def self.getInventory (opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - - }.merge(opts) - - #resource path - path = "/store/inventory".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - 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) } - - - - end - - # Place an order for a pet - # - # @param body order placed for purchasing the pet - # @return Order - def self.placeOrder (body, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'body' => body - - }.merge(opts) - - #resource path - path = "/store/order".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - if body != nil - if body.is_a?(Array) - array = Array.new - body.each do |item| - if item.respond_to?("to_body".to_sym) - array.push item.to_body - else - array.push item - end - end - post_body = array - else - if body.respond_to?("to_body".to_sym) - post_body = body.to_body - else - post_body = body - end - end - end - - # form parameters - form_parameter_hash = {} - - - response = Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body - Order.new(response) - - - - end - - # Find purchase order by ID - # For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions - # @param order_id ID of pet that needs to be fetched - # @return Order - def self.getOrderById (order_id, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'order_id' => order_id - - }.merge(opts) - - #resource path - path = "/store/order/{orderId}".sub('{format}','json').sub('{' + 'orderId' + '}', order_id.to_s) - - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body - Order.new(response) - - - - end - - # Delete purchase order by ID - # For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors - # @param order_id ID of the order that needs to be deleted - # @return void - def self.deleteOrder (order_id, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'order_id' => order_id - - }.merge(opts) - - #resource path - path = "/store/order/{orderId}".sub('{format}','json').sub('{' + 'orderId' + '}', order_id.to_s) - - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end -end diff --git a/samples/client/petstore/ruby/lib/user_api.rb b/samples/client/petstore/ruby/lib/user_api.rb deleted file mode 100644 index 90b12ef1308..00000000000 --- a/samples/client/petstore/ruby/lib/user_api.rb +++ /dev/null @@ -1,486 +0,0 @@ -require "uri" - -class UserApi - basePath = "http://petstore.swagger.io/v2" - # apiInvoker = APIInvoker - - - # Create user - # This can only be done by the logged in user. - # @param body Created user object - # @return void - def self.createUser (body, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'body' => body - - }.merge(opts) - - #resource path - path = "/user".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - if body != nil - if body.is_a?(Array) - array = Array.new - body.each do |item| - if item.respond_to?("to_body".to_sym) - array.push item.to_body - else - array.push item - end - end - post_body = array - else - if body.respond_to?("to_body".to_sym) - post_body = body.to_body - else - post_body = body - end - end - end - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end - - # Creates list of users with given input array - # - # @param body List of user object - # @return void - def self.createUsersWithArrayInput (body, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'body' => body - - }.merge(opts) - - #resource path - path = "/user/createWithArray".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - if body != nil - if body.is_a?(Array) - array = Array.new - body.each do |item| - if item.respond_to?("to_body".to_sym) - array.push item.to_body - else - array.push item - end - end - post_body = array - else - if body.respond_to?("to_body".to_sym) - post_body = body.to_body - else - post_body = body - end - end - end - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end - - # Creates list of users with given input array - # - # @param body List of user object - # @return void - def self.createUsersWithListInput (body, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'body' => body - - }.merge(opts) - - #resource path - path = "/user/createWithList".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - if body != nil - if body.is_a?(Array) - array = Array.new - body.each do |item| - if item.respond_to?("to_body".to_sym) - array.push item.to_body - else - array.push item - end - end - post_body = array - else - if body.respond_to?("to_body".to_sym) - post_body = body.to_body - else - post_body = body - end - end - end - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end - - # Logs user into the system - # - # @param username The user name for login - # @param password The password for login in clear text - # @return string - def self.loginUser (username, password, opts={}) - query_param_keys = [:username,:password] - headerParams = {} - - - - # set default values and merge with input - options = { - :'username' => username, - :'password' => password - - }.merge(opts) - - #resource path - path = "/user/login".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body - string.new(response) - - - - end - - # Logs out current logged in user session - # - # @return void - def self.logoutUser (opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - - }.merge(opts) - - #resource path - path = "/user/logout".sub('{format}','json') - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end - - # Get user by user name - # - # @param username The name that needs to be fetched. Use user1 for testing. - # @return User - def self.getUserByName (username, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'username' => username - - }.merge(opts) - - #resource path - path = "/user/{username}".sub('{format}','json').sub('{' + 'username' + '}', username.to_s) - - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body - User.new(response) - - - - end - - # Updated user - # This can only be done by the logged in user. - # @param username name that need to be deleted - # @param body Updated user object - # @return void - def self.updateUser (username, body, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'username' => username, - :'body' => body - - }.merge(opts) - - #resource path - path = "/user/{username}".sub('{format}','json').sub('{' + 'username' + '}', username.to_s) - - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - if body != nil - if body.is_a?(Array) - array = Array.new - body.each do |item| - if item.respond_to?("to_body".to_sym) - array.push item.to_body - else - array.push item - end - end - post_body = array - else - if body.respond_to?("to_body".to_sym) - post_body = body.to_body - else - post_body = body - end - end - end - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end - - # Delete user - # This can only be done by the logged in user. - # @param username The name that needs to be deleted - # @return void - def self.deleteUser (username, opts={}) - query_param_keys = [] - headerParams = {} - - - - # set default values and merge with input - options = { - :'username' => username - - }.merge(opts) - - #resource path - path = "/user/{username}".sub('{format}','json').sub('{' + 'username' + '}', username.to_s) - - - # pull querystring keys from options - queryopts = options.select do |key,value| - query_param_keys.include? key - end - - # header parameters - headers = {} - - _header_accept = 'application/json, application/xml' - if _header_accept != '' - headerParams['Accept'] = _header_accept - end - _header_content_type = [] - headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' - - - - # http body (model) - post_body = nil - - # form parameters - form_parameter_hash = {} - - - - Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make - - - end -end From b85c8bbe7f7b502cf91411dca6f5c79b11fc5ba6 Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Mon, 6 Apr 2015 08:08:36 -0600 Subject: [PATCH 5/7] rebuilt client --- .../java/io/swagger/client/ApiInvoker.java | 3 +- .../lib/models/Category.php | 2 +- samples/client/petstore/ruby/lib/pet_api.rb | 462 +++++++++++++++++ samples/client/petstore/ruby/lib/store_api.rb | 227 ++++++++ samples/client/petstore/ruby/lib/user_api.rb | 486 ++++++++++++++++++ samples/html/index.html | 10 +- 6 files changed, 1183 insertions(+), 7 deletions(-) create mode 100644 samples/client/petstore/ruby/lib/pet_api.rb create mode 100644 samples/client/petstore/ruby/lib/store_api.rb create mode 100644 samples/client/petstore/ruby/lib/user_api.rb diff --git a/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java b/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java index 8c3f271a13e..dec0db43f66 100644 --- a/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java +++ b/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java @@ -16,6 +16,7 @@ import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.*; import org.apache.http.impl.conn.*; +import org.apache.http.impl.conn.tsccm.*; import org.apache.http.params.*; import org.apache.http.util.EntityUtils; @@ -381,7 +382,7 @@ public Socket createSocket() throws IOException { schemeRegistry.register(httpsScheme); schemeRegistry.register(new Scheme("http", PlainSocketFactory.getSocketFactory(), 80)); - ignoreSSLConnectionManager = new SingleClientConnManager(new BasicHttpParams(), schemeRegistry); + ignoreSSLConnectionManager = new ThreadSafeClientConnManager(new BasicHttpParams(), schemeRegistry); } catch (NoSuchAlgorithmException e) { // This will only be thrown if SSL isn't available for some reason. } catch (KeyManagementException e) { diff --git a/samples/client/petstore/php/SwaggerPetstore-php/lib/models/Category.php b/samples/client/petstore/php/SwaggerPetstore-php/lib/models/Category.php index 2bd2410268c..101222b4503 100644 --- a/samples/client/petstore/php/SwaggerPetstore-php/lib/models/Category.php +++ b/samples/client/petstore/php/SwaggerPetstore-php/lib/models/Category.php @@ -16,7 +16,7 @@ */ /** - * testing category description + * * * NOTE: This class is auto generated by the swagger code generator program. Do not edit the class manually. * diff --git a/samples/client/petstore/ruby/lib/pet_api.rb b/samples/client/petstore/ruby/lib/pet_api.rb new file mode 100644 index 00000000000..8bb98d4efb1 --- /dev/null +++ b/samples/client/petstore/ruby/lib/pet_api.rb @@ -0,0 +1,462 @@ +require "uri" + +class PetApi + basePath = "http://petstore.swagger.io/v2" + # apiInvoker = APIInvoker + + + # Update an existing pet + # + # @param body Pet object that needs to be added to the store + # @return void + def self.updatePet (body, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'body' => body + + }.merge(opts) + + #resource path + path = "/pet".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = ['application/json', 'application/xml', ] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + if body != nil + if body.is_a?(Array) + array = Array.new + body.each do |item| + if item.respond_to?("to_body".to_sym) + array.push item.to_body + else + array.push item + end + end + post_body = array + else + if body.respond_to?("to_body".to_sym) + post_body = body.to_body + else + post_body = body + end + end + end + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end + + # Add a new pet to the store + # + # @param body Pet object that needs to be added to the store + # @return void + def self.addPet (body, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'body' => body + + }.merge(opts) + + #resource path + path = "/pet".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = ['application/json', 'application/xml', ] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + if body != nil + if body.is_a?(Array) + array = Array.new + body.each do |item| + if item.respond_to?("to_body".to_sym) + array.push item.to_body + else + array.push item + end + end + post_body = array + else + if body.respond_to?("to_body".to_sym) + post_body = body.to_body + else + post_body = body + end + end + end + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end + + # Finds Pets by status + # Multiple status values can be provided with comma seperated strings + # @param status Status values that need to be considered for filter + # @return array[Pet] + def self.findPetsByStatus (status, opts={}) + query_param_keys = [:status] + headerParams = {} + + + + # set default values and merge with input + options = { + :'status' => status + + }.merge(opts) + + #resource path + path = "/pet/findByStatus".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + 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) } + + + + end + + # Finds Pets by tags + # Muliple tags can be provided with comma seperated strings. Use tag1, tag2, tag3 for testing. + # @param tags Tags to filter by + # @return array[Pet] + def self.findPetsByTags (tags, opts={}) + query_param_keys = [:tags] + headerParams = {} + + + + # set default values and merge with input + options = { + :'tags' => tags + + }.merge(opts) + + #resource path + path = "/pet/findByTags".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + 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) } + + + + end + + # Find pet by ID + # Returns a pet when ID < 10. ID > 10 or nonintegers will simulate API error conditions + # @param pet_id ID of pet that needs to be fetched + # @return Pet + def self.getPetById (pet_id, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'pet_id' => pet_id + + }.merge(opts) + + #resource path + path = "/pet/{petId}".sub('{format}','json').sub('{' + 'petId' + '}', pet_id.to_s) + + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body + Pet.new(response) + + + + end + + # Updates a pet in the store with form data + # + # @param pet_id ID of pet that needs to be updated + # @param name Updated name of the pet + # @param status Updated status of the pet + # @return void + def self.updatePetWithForm (pet_id, name, status, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'pet_id' => pet_id, + :'name' => name, + :'status' => status + + }.merge(opts) + + #resource path + path = "/pet/{petId}".sub('{format}','json').sub('{' + 'petId' + '}', pet_id.to_s) + + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = ['application/x-www-form-urlencoded', ] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + 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, :form_params => form_parameter_hash }).make + + + end + + # Deletes a pet + # + # @param api_key + # @param pet_id Pet id to delete + # @return void + def self.deletePet (api_key, pet_id, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'api_key' => api_key, + :'pet_id' => pet_id + + }.merge(opts) + + #resource path + path = "/pet/{petId}".sub('{format}','json').sub('{' + 'petId' + '}', pet_id.to_s) + + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + headers[:'api_key'] = api_key + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end + + # uploads an image + # + # @param pet_id ID of pet to update + # @param additional_metadata Additional data to pass to server + # @param file file to upload + # @return void + def self.uploadFile (pet_id, additional_metadata, file, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'pet_id' => pet_id, + :'additional_metadata' => additional_metadata, + :'file' => file + + }.merge(opts) + + #resource path + path = "/pet/{petId}/uploadImage".sub('{format}','json').sub('{' + 'petId' + '}', pet_id.to_s) + + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = ['multipart/form-data', ] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + form_parameter_hash["additionalMetadata"] = additional_metadata + form_parameter_hash["file"] = file + + + Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end +end diff --git a/samples/client/petstore/ruby/lib/store_api.rb b/samples/client/petstore/ruby/lib/store_api.rb new file mode 100644 index 00000000000..bb1ece99f3c --- /dev/null +++ b/samples/client/petstore/ruby/lib/store_api.rb @@ -0,0 +1,227 @@ +require "uri" + +class StoreApi + basePath = "http://petstore.swagger.io/v2" + # apiInvoker = APIInvoker + + + # Returns pet inventories by status + # Returns a map of status codes to quantities + # @return map[string,int] + def self.getInventory (opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + + }.merge(opts) + + #resource path + path = "/store/inventory".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + 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) } + + + + end + + # Place an order for a pet + # + # @param body order placed for purchasing the pet + # @return Order + def self.placeOrder (body, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'body' => body + + }.merge(opts) + + #resource path + path = "/store/order".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + if body != nil + if body.is_a?(Array) + array = Array.new + body.each do |item| + if item.respond_to?("to_body".to_sym) + array.push item.to_body + else + array.push item + end + end + post_body = array + else + if body.respond_to?("to_body".to_sym) + post_body = body.to_body + else + post_body = body + end + end + end + + # form parameters + form_parameter_hash = {} + + + response = Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body + Order.new(response) + + + + end + + # Find purchase order by ID + # For valid response try integer IDs with value <= 5 or > 10. Other values will generated exceptions + # @param order_id ID of pet that needs to be fetched + # @return Order + def self.getOrderById (order_id, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'order_id' => order_id + + }.merge(opts) + + #resource path + path = "/store/order/{orderId}".sub('{format}','json').sub('{' + 'orderId' + '}', order_id.to_s) + + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body + Order.new(response) + + + + end + + # Delete purchase order by ID + # For valid response try integer IDs with value < 1000. Anything above 1000 or nonintegers will generate API errors + # @param order_id ID of the order that needs to be deleted + # @return void + def self.deleteOrder (order_id, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'order_id' => order_id + + }.merge(opts) + + #resource path + path = "/store/order/{orderId}".sub('{format}','json').sub('{' + 'orderId' + '}', order_id.to_s) + + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end +end diff --git a/samples/client/petstore/ruby/lib/user_api.rb b/samples/client/petstore/ruby/lib/user_api.rb new file mode 100644 index 00000000000..90b12ef1308 --- /dev/null +++ b/samples/client/petstore/ruby/lib/user_api.rb @@ -0,0 +1,486 @@ +require "uri" + +class UserApi + basePath = "http://petstore.swagger.io/v2" + # apiInvoker = APIInvoker + + + # Create user + # This can only be done by the logged in user. + # @param body Created user object + # @return void + def self.createUser (body, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'body' => body + + }.merge(opts) + + #resource path + path = "/user".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + if body != nil + if body.is_a?(Array) + array = Array.new + body.each do |item| + if item.respond_to?("to_body".to_sym) + array.push item.to_body + else + array.push item + end + end + post_body = array + else + if body.respond_to?("to_body".to_sym) + post_body = body.to_body + else + post_body = body + end + end + end + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end + + # Creates list of users with given input array + # + # @param body List of user object + # @return void + def self.createUsersWithArrayInput (body, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'body' => body + + }.merge(opts) + + #resource path + path = "/user/createWithArray".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + if body != nil + if body.is_a?(Array) + array = Array.new + body.each do |item| + if item.respond_to?("to_body".to_sym) + array.push item.to_body + else + array.push item + end + end + post_body = array + else + if body.respond_to?("to_body".to_sym) + post_body = body.to_body + else + post_body = body + end + end + end + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end + + # Creates list of users with given input array + # + # @param body List of user object + # @return void + def self.createUsersWithListInput (body, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'body' => body + + }.merge(opts) + + #resource path + path = "/user/createWithList".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + if body != nil + if body.is_a?(Array) + array = Array.new + body.each do |item| + if item.respond_to?("to_body".to_sym) + array.push item.to_body + else + array.push item + end + end + post_body = array + else + if body.respond_to?("to_body".to_sym) + post_body = body.to_body + else + post_body = body + end + end + end + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end + + # Logs user into the system + # + # @param username The user name for login + # @param password The password for login in clear text + # @return string + def self.loginUser (username, password, opts={}) + query_param_keys = [:username,:password] + headerParams = {} + + + + # set default values and merge with input + options = { + :'username' => username, + :'password' => password + + }.merge(opts) + + #resource path + path = "/user/login".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body + string.new(response) + + + + end + + # Logs out current logged in user session + # + # @return void + def self.logoutUser (opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + + }.merge(opts) + + #resource path + path = "/user/logout".sub('{format}','json') + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end + + # Get user by user name + # + # @param username The name that needs to be fetched. Use user1 for testing. + # @return User + def self.getUserByName (username, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'username' => username + + }.merge(opts) + + #resource path + path = "/user/{username}".sub('{format}','json').sub('{' + 'username' + '}', username.to_s) + + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make.body + User.new(response) + + + + end + + # Updated user + # This can only be done by the logged in user. + # @param username name that need to be deleted + # @param body Updated user object + # @return void + def self.updateUser (username, body, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'username' => username, + :'body' => body + + }.merge(opts) + + #resource path + path = "/user/{username}".sub('{format}','json').sub('{' + 'username' + '}', username.to_s) + + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + if body != nil + if body.is_a?(Array) + array = Array.new + body.each do |item| + if item.respond_to?("to_body".to_sym) + array.push item.to_body + else + array.push item + end + end + post_body = array + else + if body.respond_to?("to_body".to_sym) + post_body = body.to_body + else + post_body = body + end + end + end + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end + + # Delete user + # This can only be done by the logged in user. + # @param username The name that needs to be deleted + # @return void + def self.deleteUser (username, opts={}) + query_param_keys = [] + headerParams = {} + + + + # set default values and merge with input + options = { + :'username' => username + + }.merge(opts) + + #resource path + path = "/user/{username}".sub('{format}','json').sub('{' + 'username' + '}', username.to_s) + + + # pull querystring keys from options + queryopts = options.select do |key,value| + query_param_keys.include? key + end + + # header parameters + headers = {} + + _header_accept = 'application/json, application/xml' + if _header_accept != '' + headerParams['Accept'] = _header_accept + end + _header_content_type = [] + headerParams['Content-Type'] = _header_content_type.length > 0 ? _header_content_type[0] : 'application/json' + + + + # http body (model) + post_body = nil + + # form parameters + form_parameter_hash = {} + + + + Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body, :form_params => form_parameter_hash }).make + + + end +end diff --git a/samples/html/index.html b/samples/html/index.html index 1055c9962ad..1ac869c1cee 100644 --- a/samples/html/index.html +++ b/samples/html/index.html @@ -420,7 +420,7 @@

Example data

Example data

Content-Type: application/xml
-
not implemented com.wordnik.swagger.models.properties.MapProperty@2acca551
+
not implemented com.wordnik.swagger.models.properties.MapProperty@787b217

@@ -444,11 +444,11 @@

Return type

Example data

Content-Type: application/json
-
{\n  "id" : 123456789,\n  "petId" : 123456789,\n  "complete" : true,\n  "status" : "aeiou",\n  "quantity" : 123,\n  "shipDate" : "2015-04-05T03:02:18.855+0000"\n}
+
{\n  "id" : 123456789,\n  "petId" : 123456789,\n  "complete" : true,\n  "status" : "aeiou",\n  "quantity" : 123,\n  "shipDate" : "2015-04-06T14:06:47.931+0000"\n}

Example data

Content-Type: application/xml
-
\n  123456\n  123456\n  0\n  2015-04-04T20:02:18.857Z\n  string\n  true\n
+
\n  123456\n  123456\n  0\n  2015-04-06T08:06:47.934Z\n  string\n  true\n

@@ -472,11 +472,11 @@

Return type

Example data

Content-Type: application/json
-
{\n  "id" : 123456789,\n  "petId" : 123456789,\n  "complete" : true,\n  "status" : "aeiou",\n  "quantity" : 123,\n  "shipDate" : "2015-04-05T03:02:18.859+0000"\n}
+
{\n  "id" : 123456789,\n  "petId" : 123456789,\n  "complete" : true,\n  "status" : "aeiou",\n  "quantity" : 123,\n  "shipDate" : "2015-04-06T14:06:47.935+0000"\n}

Example data

Content-Type: application/xml
-
\n  123456\n  123456\n  0\n  2015-04-04T20:02:18.859Z\n  string\n  true\n
+
\n  123456\n  123456\n  0\n  2015-04-06T08:06:47.935Z\n  string\n  true\n

From c1d51266b3e10d6cf5b0136db913d615f7033f8d Mon Sep 17 00:00:00 2001 From: Tony Tam Date: Wed, 8 Apr 2015 04:51:54 -0600 Subject: [PATCH 6/7] fixed version --- README.md | 2 +- modules/swagger-codegen-cli/pom.xml | 2 +- modules/swagger-codegen/pom.xml | 4 ++-- .../swagger-codegen/src/main/resources/JavaJaxRS/pom.mustache | 2 +- modules/swagger-generator/pom.xml | 4 ++-- pom.xml | 2 +- samples/server/petstore/jaxrs/pom.xml | 2 +- 7 files changed, 9 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 6fe067b7342..c951c4b9620 100644 --- a/README.md +++ b/README.md @@ -18,7 +18,7 @@ The Swagger Specification has undergone 3 revisions since initial creation in 20 Swagger Codegen Version | Release Date | Swagger Spec compatibility | Notes ----------------------- | ------------ | -------------------------- | ----- -1.5.0-M2 | 2015-04-06 | 1.0, 1.1, 1.2, 2.0 | [master](https://github.com/swagger-api/swagger-codegen) +2.1.0-M2 | 2015-04-06 | 1.0, 1.1, 1.2, 2.0 | [master](https://github.com/swagger-api/swagger-codegen) 2.0.17 | 2014-08-22 | 1.1, 1.2 | [tag v2.0.17](https://github.com/swagger-api/swagger-codegen/tree/v2.0.17) 1.0.4 | 2012-04-12 | 1.0, 1.1 | [tag v1.0.4](https://github.com/swagger-api/swagger-codegen/tree/swagger-codegen_2.9.1-1.1) diff --git a/modules/swagger-codegen-cli/pom.xml b/modules/swagger-codegen-cli/pom.xml index caf6d3d54a3..d5c54882f5d 100644 --- a/modules/swagger-codegen-cli/pom.xml +++ b/modules/swagger-codegen-cli/pom.xml @@ -3,7 +3,7 @@ com.wordnik swagger-codegen-project - 1.5.0-M2 + 2.1.0-M2 ../.. 4.0.0 diff --git a/modules/swagger-codegen/pom.xml b/modules/swagger-codegen/pom.xml index 54c8cf9f6cb..e4b70a492b8 100644 --- a/modules/swagger-codegen/pom.xml +++ b/modules/swagger-codegen/pom.xml @@ -2,7 +2,7 @@ com.wordnik swagger-codegen-project - 1.5.0-M2 + 2.1.0-M2 ../.. 4.0.0 @@ -10,7 +10,7 @@ swagger-codegen jar swagger-codegen (core library) - 1.5.0-M2 + 2.1.0-M2 src/main/java install diff --git a/modules/swagger-codegen/src/main/resources/JavaJaxRS/pom.mustache b/modules/swagger-codegen/src/main/resources/JavaJaxRS/pom.mustache index aa7ecf5ab48..607f2116f54 100644 --- a/modules/swagger-codegen/src/main/resources/JavaJaxRS/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/JavaJaxRS/pom.mustache @@ -129,7 +129,7 @@ - 1.5.0-M2 + 2.1.0-M2 9.2.9.v20150224 1.13 1.6.3 diff --git a/modules/swagger-generator/pom.xml b/modules/swagger-generator/pom.xml index bf49f2b976f..582e40f59da 100644 --- a/modules/swagger-generator/pom.xml +++ b/modules/swagger-generator/pom.xml @@ -3,14 +3,14 @@ com.wordnik swagger-codegen-project - 1.5.0-M2 + 2.1.0-M2 ../.. com.wordnik swagger-generator war swagger-generator - 1.5.0-M2 + 2.1.0-M2 src/main/java diff --git a/pom.xml b/pom.xml index 59bf41ff0d7..1f386e48b76 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ swagger-codegen-project pom swagger-codegen-project - 1.5.0-M2 + 2.1.0-M2 https://github.com/swagger-api/swagger-codegen scm:git:git@github.com:swagger-api/swagger-codegen.git diff --git a/samples/server/petstore/jaxrs/pom.xml b/samples/server/petstore/jaxrs/pom.xml index 05764d01c0d..d75c6bbfda8 100644 --- a/samples/server/petstore/jaxrs/pom.xml +++ b/samples/server/petstore/jaxrs/pom.xml @@ -129,7 +129,7 @@ - 1.5.0-M2 + 2.1.0-M2 9.2.9.v20150224 1.13 1.6.3 From f7d30c847fdf0881891f4252de7799706c789e2f Mon Sep 17 00:00:00 2001 From: Anthony Sosso Date: Fri, 1 May 2015 15:25:54 -0700 Subject: [PATCH 7/7] Java: support x-www-form-urlencoded for PUT, POST, DELETE --- .../main/resources/Java/apiInvoker.mustache | 77 ++++++++++++------- 1 file changed, 49 insertions(+), 28 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache b/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache index ac689046047..c30ba4cdd12 100644 --- a/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache +++ b/modules/swagger-codegen/src/main/resources/Java/apiInvoker.mustache @@ -18,6 +18,7 @@ import javax.ws.rs.core.MediaType; import java.util.Collection; import java.util.Map; +import java.util.Map.Entry; import java.util.HashMap; import java.util.List; import java.util.Date; @@ -195,47 +196,42 @@ public class ApiInvoker { response = (ClientResponse) builder.get(ClientResponse.class); } else if ("POST".equals(method)) { - if(body == null) + if (contentType.startsWith("application/x-www-form-urlencoded")) { + String encodedFormParams = this + .getXWWWFormUrlencodedParams(formParams); + response = builder.type(contentType).post(ClientResponse.class, + encodedFormParams); + } else if (body == null) { response = builder.post(ClientResponse.class, null); - else if(body instanceof FormDataMultiPart) { + } else if(body instanceof FormDataMultiPart) { response = builder.type(contentType).post(ClientResponse.class, body); } else response = builder.type(contentType).post(ClientResponse.class, serialize(body)); } else if ("PUT".equals(method)) { - if(body == null) + if ("application/x-www-form-urlencoded".equals(contentType)) { + String encodedFormParams = this + .getXWWWFormUrlencodedParams(formParams); + response = builder.type(contentType).put(ClientResponse.class, + encodedFormParams); + } else if(body == null) { response = builder.put(ClientResponse.class, serialize(body)); - else { - if("application/x-www-form-urlencoded".equals(contentType)) { - StringBuilder formParamBuilder = new StringBuilder(); - - // encode the form params - for(String key : formParams.keySet()) { - String value = formParams.get(key); - if(value != null && !"".equals(value.trim())) { - if(formParamBuilder.length() > 0) { - formParamBuilder.append("&"); - } - try { - formParamBuilder.append(URLEncoder.encode(key, "utf8")).append("=").append(URLEncoder.encode(value, "utf8")); - } - catch (Exception e) { - // move on to next - } - } - } - response = builder.type(contentType).put(ClientResponse.class, formParamBuilder.toString()); - } - else + } else { response = builder.type(contentType).put(ClientResponse.class, serialize(body)); } } else if ("DELETE".equals(method)) { - if(body == null) + if ("application/x-www-form-urlencoded".equals(contentType)) { + String encodedFormParams = this + .getXWWWFormUrlencodedParams(formParams); + response = builder.type(contentType).delete(ClientResponse.class, + encodedFormParams); + } else if(body == null) { response = builder.delete(ClientResponse.class); - else + } else { response = builder.type(contentType).delete(ClientResponse.class, serialize(body)); + } } else { throw new ApiException(500, "unknown method type " + method); @@ -267,6 +263,31 @@ public class ApiInvoker { } } + private String getXWWWFormUrlencodedParams(Map formParams) { + StringBuilder formParamBuilder = new StringBuilder(); + + for (Entry param : formParams.entrySet()) { + String keyStr = ApiInvoker.parameterToString(param.getKey()); + String valueStr = ApiInvoker.parameterToString(param.getValue()); + + try { + formParamBuilder.append(URLEncoder.encode(keyStr, "utf8")) + .append("=") + .append(URLEncoder.encode(valueStr, "utf8")); + formParamBuilder.append("&"); + } catch (UnsupportedEncodingException e) { + // move on to next + } + } + String encodedFormParams = formParamBuilder.toString(); + if (encodedFormParams.endsWith("&")) { + encodedFormParams = encodedFormParams.substring(0, + encodedFormParams.length() - 1); + } + return encodedFormParams; + } + + private Client getClient(String host) { if(!hostMap.containsKey(host)) { Client client = Client.create(); @@ -276,4 +297,4 @@ public class ApiInvoker { } return hostMap.get(host); } -} +} \ No newline at end of file