forked from loafle/openapi-generator-original
Merge branch 'develop_2.0' of github.com:swagger-api/swagger-codegen into develop_2.0
This commit is contained in:
commit
03b764d404
36
bin/ruby-petstore.sh
Executable file
36
bin/ruby-petstore.sh
Executable file
@ -0,0 +1,36 @@
|
||||
#!/bin/sh
|
||||
|
||||
SCRIPT="$0"
|
||||
|
||||
while [ -h "$SCRIPT" ] ; do
|
||||
ls=`ls -ld "$SCRIPT"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
SCRIPT="$link"
|
||||
else
|
||||
SCRIPT=`dirname "$SCRIPT"`/"$link"
|
||||
fi
|
||||
done
|
||||
|
||||
if [ ! -d "${APP_DIR}" ]; then
|
||||
APP_DIR=`dirname "$SCRIPT"`/..
|
||||
APP_DIR=`cd "${APP_DIR}"; pwd`
|
||||
fi
|
||||
|
||||
root=./modules/swagger-codegen-distribution/pom.xml
|
||||
|
||||
# gets version of swagger-codegen
|
||||
version=$(sed '/<project>/,/<\/project>/d;/<version>/!d;s/ *<\/\?version> *//g' $root | sed -n '2p' | sed -e 's,.*<version>\([^<]*\)</version>.*,\1,g')
|
||||
|
||||
executable="./modules/swagger-codegen-distribution/target/swagger-codegen-distribution-$version.jar"
|
||||
|
||||
if [ ! -f "$executable" ]
|
||||
then
|
||||
mvn clean package
|
||||
fi
|
||||
|
||||
# if you've executed sbt assembly previously it will use that instead.
|
||||
export JAVA_OPTS="${JAVA_OPTS} -XX:MaxPermSize=256M -Xmx1024M -DloggerPath=conf/log4j.properties"
|
||||
ags="$@ -i modules/swagger-codegen/src/test/resources/2_0/petstore.json -l ruby -o samples/client/petstore/ruby"
|
||||
|
||||
java $JAVA_OPTS -jar $executable $ags
|
@ -0,0 +1,120 @@
|
||||
package com.wordnik.swagger.codegen.languages;
|
||||
|
||||
import com.wordnik.swagger.codegen.*;
|
||||
import com.wordnik.swagger.util.Json;
|
||||
import com.wordnik.swagger.models.properties.*;
|
||||
|
||||
import java.util.*;
|
||||
import java.io.File;
|
||||
|
||||
public class RubyClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
protected String invokerPackage = "com.wordnik.client";
|
||||
protected String groupId = "com.wordnik";
|
||||
protected String artifactId = "swagger-client";
|
||||
protected String artifactVersion = "1.0.0";
|
||||
|
||||
public CodegenType getTag() {
|
||||
return CodegenType.CLIENT;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return "ruby";
|
||||
}
|
||||
|
||||
public String getHelp() {
|
||||
return "Generates a Ruby client library.";
|
||||
}
|
||||
|
||||
public RubyClientCodegen() {
|
||||
super();
|
||||
modelPackage = "models";
|
||||
apiPackage = "lib";
|
||||
outputFolder = "generated-code/ruby";
|
||||
modelTemplateFiles.put("model.mustache", ".rb");
|
||||
apiTemplateFiles.put("api.mustache", ".rb");
|
||||
templateDir = "ruby";
|
||||
|
||||
typeMapping.clear();
|
||||
languageSpecificPrimitives.clear();
|
||||
|
||||
reservedWords = new HashSet<String> (
|
||||
Arrays.asList(
|
||||
"int")
|
||||
);
|
||||
|
||||
additionalProperties.put("invokerPackage", invokerPackage);
|
||||
additionalProperties.put("groupId", groupId);
|
||||
additionalProperties.put("artifactId", artifactId);
|
||||
additionalProperties.put("artifactVersion", artifactVersion);
|
||||
|
||||
languageSpecificPrimitives.add("int");
|
||||
languageSpecificPrimitives.add("array");
|
||||
languageSpecificPrimitives.add("map");
|
||||
languageSpecificPrimitives.add("string");
|
||||
languageSpecificPrimitives.add("DateTime");
|
||||
|
||||
typeMapping.put("long", "int");
|
||||
typeMapping.put("integer", "int");
|
||||
typeMapping.put("Array", "array");
|
||||
typeMapping.put("String", "string");
|
||||
typeMapping.put("List", "array");
|
||||
typeMapping.put("map", "map");
|
||||
|
||||
supportingFiles.add(new SupportingFile("swagger.mustache", "", "lib/swagger.rb"));
|
||||
supportingFiles.add(new SupportingFile("monkey.mustache", "", "lib/monkey.rb"));
|
||||
supportingFiles.add(new SupportingFile("swagger/request.mustache", "", "lib/swagger/request.rb"));
|
||||
supportingFiles.add(new SupportingFile("swagger/response.mustache", "", "lib/swagger/response.rb"));
|
||||
supportingFiles.add(new SupportingFile("swagger/version.mustache", "", "lib/swagger/version.rb"));
|
||||
supportingFiles.add(new SupportingFile("swagger/configuration.mustache", "", "lib/swagger/configuration.rb"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public String escapeReservedWord(String name) {
|
||||
return "_" + name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String apiFileFolder() {
|
||||
return outputFolder + "/" + apiPackage().replace('.', File.separatorChar);
|
||||
}
|
||||
|
||||
public String modelFileFolder() {
|
||||
return outputFolder + "/" + modelPackage().replace('.', File.separatorChar);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getTypeDeclaration(Property p) {
|
||||
if(p instanceof ArrayProperty) {
|
||||
ArrayProperty ap = (ArrayProperty) p;
|
||||
Property inner = ap.getItems();
|
||||
return getSwaggerType(p) + "[" + getTypeDeclaration(inner) + "]";
|
||||
}
|
||||
else if (p instanceof MapProperty) {
|
||||
MapProperty mp = (MapProperty) p;
|
||||
Property inner = mp.getAdditionalProperties();
|
||||
return getSwaggerType(p) + "[string," + getTypeDeclaration(inner) + "]";
|
||||
}
|
||||
return super.getTypeDeclaration(p);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSwaggerType(Property p) {
|
||||
String swaggerType = super.getSwaggerType(p);
|
||||
String type = null;
|
||||
if(typeMapping.containsKey(swaggerType)) {
|
||||
type = typeMapping.get(swaggerType);
|
||||
if(languageSpecificPrimitives.contains(type)) {
|
||||
return type;
|
||||
}
|
||||
}
|
||||
else
|
||||
type = swaggerType;
|
||||
if(type == null)
|
||||
return null;
|
||||
return type;
|
||||
}
|
||||
|
||||
public String toDefaultValue(Property p) {
|
||||
return "null";
|
||||
}
|
||||
}
|
@ -11,4 +11,5 @@ com.wordnik.swagger.codegen.languages.StaticHtmlGenerator
|
||||
com.wordnik.swagger.codegen.languages.SwaggerGenerator
|
||||
com.wordnik.swagger.codegen.languages.TizenClientCodegen
|
||||
com.wordnik.swagger.codegen.languages.PhpClientCodegen
|
||||
com.wordnik.swagger.codegen.languages.RubyClientCodegen
|
||||
com.wordnik.swagger.codegen.languages.PythonClientCodegen
|
||||
|
@ -48,6 +48,18 @@ class APIClient {
|
||||
$this->headerValue = $headerValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the user agent of the API client
|
||||
*
|
||||
* @param string $user_agent The user agent of the API client
|
||||
*/
|
||||
public function setUserAgent($user_agent) {
|
||||
if (!is_string($user_agent)) {
|
||||
throw new Exception('User-agent must be a string.');
|
||||
}
|
||||
$this->user_agent= $user_agent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $seconds Number of seconds before timing out [set to 0 for no timeout]
|
||||
*/
|
||||
@ -58,7 +70,6 @@ class APIClient {
|
||||
$this->curl_timout = $seconds;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $resourcePath path to method endpoint
|
||||
* @param string $method method to call
|
||||
@ -121,6 +132,13 @@ class APIClient {
|
||||
}
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
|
||||
// Set user agent
|
||||
if ($this->user_agent) {
|
||||
curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);
|
||||
} else { // use PHP-Swagger as the default user agent
|
||||
curl_setopt($curl, CURLOPT_USERAGENT, 'PHP-Swagger');
|
||||
}
|
||||
|
||||
// Make the request
|
||||
$response = curl_exec($curl);
|
||||
$response_info = curl_getinfo($curl);
|
||||
@ -129,11 +147,14 @@ class APIClient {
|
||||
if ($response_info['http_code'] == 0) {
|
||||
throw new APIClientException("TIMEOUT: api call to " . $url .
|
||||
" took more than 5s to return", 0, $response_info, $response);
|
||||
} else if ($response_info['http_code'] == 200) {
|
||||
} else if ($response_info['http_code'] >= 200 && $response_info['http_code'] <= 299 ) {
|
||||
$data = json_decode($response);
|
||||
if (json_last_error() > 0) { // if response is a string
|
||||
$data = $response;
|
||||
}
|
||||
} else if ($response_info['http_code'] == 401) {
|
||||
throw new APIClientException("Unauthorized API request to " . $url .
|
||||
": " . json_decode($response)->message, 0, $response_info, $response);
|
||||
": " . serialize($response), 0, $response_info, $response);
|
||||
} else if ($response_info['http_code'] == 404) {
|
||||
$data = null;
|
||||
} else {
|
||||
@ -178,7 +199,7 @@ class APIClient {
|
||||
* @return string the serialized object
|
||||
*/
|
||||
public static function toPathValue($value) {
|
||||
return rawurlencode($value);
|
||||
return rawurlencode(toString($value));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -193,20 +214,48 @@ class APIClient {
|
||||
if (is_array($object)) {
|
||||
return implode(',', $object);
|
||||
} else {
|
||||
return $object;
|
||||
return toString($object);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Just pass through the header value for now. Placeholder in case we
|
||||
* find out we need to do something with header values.
|
||||
* Take value and turn it into a string suitable for inclusion in
|
||||
* the header. If it's a string, pass through unchanged
|
||||
* If it's a datetime object, format it in ISO8601
|
||||
* @param string $value a string which will be part of the header
|
||||
* @return string the header string
|
||||
*/
|
||||
public static function toHeaderValue($value) {
|
||||
return $value;
|
||||
return toString($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Take value and turn it into a string suitable for inclusion in
|
||||
* the http body (form parameter). If it's a string, pass through unchanged
|
||||
* If it's a datetime object, format it in ISO8601
|
||||
* @param string $value the value of the form parameter
|
||||
* @return string the form string
|
||||
*/
|
||||
public static function toFormValue($value) {
|
||||
return toString($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Take value and turn it into a string suitable for inclusion in
|
||||
* the parameter. If it's a string, pass through unchanged
|
||||
* If it's a datetime object, format it in ISO8601
|
||||
* @param string $value the value of the parameter
|
||||
* @return string the header string
|
||||
*/
|
||||
public static function toString($value) {
|
||||
if ($value instanceof \DateTime) { // datetime in ISO8601 format
|
||||
return $value->format(\DateTime::ISO8601);
|
||||
}
|
||||
else {
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deserialize a JSON string into an object
|
||||
*
|
||||
|
@ -63,7 +63,7 @@ class {{classname}} {
|
||||
}{{/pathParams}}
|
||||
{{#formParams}}// form params
|
||||
if (${{paramName}} !== null) {
|
||||
$formParams['{{baseName}}'] = {{#isFile}}'@' . {{/isFile}}${{paramName}};
|
||||
$formParams['{{baseName}}'] = {{#isFile}}'@' . {{/isFile}}$this->apiClient->toFormValue(${{paramName}});
|
||||
}{{/formParams}}
|
||||
{{#bodyParams}}// body params
|
||||
$body = null;
|
||||
|
@ -7,9 +7,8 @@ class {{classname}}
|
||||
def self.attribute_map
|
||||
{
|
||||
{{#vars}}
|
||||
:{{{name}}} => :{{{baseName}}}{{#hasMore}},
|
||||
{{/hasMore}}
|
||||
{{/vars}}{{newline}}
|
||||
:{{{name}}} => :{{{baseName}}}{{#hasMore}},{{/hasMore}}
|
||||
{{/vars}}
|
||||
}
|
||||
end
|
||||
|
||||
@ -19,14 +18,14 @@ class {{classname}}
|
||||
{{#vars}}
|
||||
if self.class.attribute_map[:"{{{name}}}"]
|
||||
{{#isContainer}}
|
||||
if (value = attributes["{{{baseName}}}"]).is_a?(Array)
|
||||
@{{{name}}} = value{{#complexType}}.map{ |v| {{complexType}}.new(v) }{{/complexType}}{{newline}}
|
||||
end
|
||||
if (value = attributes["{{{baseName}}}"]).is_a?(Array)
|
||||
@{{{name}}} = value{{#complexType}}.map{ |v| {{complexType}}.new(v) }{{/complexType}}{{newline}}
|
||||
end
|
||||
{{/isContainer}}{{^isContainer}}
|
||||
@{{{name}}} = attributes["{{{baseName}}}"]
|
||||
{{/isContainer}}
|
||||
@{{{name}}} = attributes["{{{baseName}}}"]
|
||||
{{/isContainer}}
|
||||
end
|
||||
{{/vars}}{{newline}}
|
||||
{{/vars}}
|
||||
end
|
||||
|
||||
def to_body
|
||||
|
@ -304,10 +304,10 @@ class PetApi {
|
||||
}
|
||||
// form params
|
||||
if ($name !== null) {
|
||||
$formParams['name'] = $name;
|
||||
$formParams['name'] = $this->apiClient->toFormValue($name);
|
||||
}// form params
|
||||
if ($status !== null) {
|
||||
$formParams['status'] = $status;
|
||||
$formParams['status'] = $this->apiClient->toFormValue($status);
|
||||
}
|
||||
|
||||
|
||||
@ -408,10 +408,10 @@ class PetApi {
|
||||
}
|
||||
// form params
|
||||
if ($additionalMetadata !== null) {
|
||||
$formParams['additionalMetadata'] = $additionalMetadata;
|
||||
$formParams['additionalMetadata'] = $this->apiClient->toFormValue($additionalMetadata);
|
||||
}// form params
|
||||
if ($file !== null) {
|
||||
$formParams['file'] = '@' . $file;
|
||||
$formParams['file'] = '@' . $this->apiClient->toFormValue($file);
|
||||
}
|
||||
|
||||
|
||||
|
@ -48,6 +48,18 @@ class APIClient {
|
||||
$this->headerValue = $headerValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the user agent of the API client
|
||||
*
|
||||
* @param string $user_agent The user agent of the API client
|
||||
*/
|
||||
public function setUserAgent($user_agent) {
|
||||
if (!is_string($user_agent)) {
|
||||
throw new Exception('User-agent must be a string.');
|
||||
}
|
||||
$this->user_agent= $user_agent;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $seconds Number of seconds before timing out [set to 0 for no timeout]
|
||||
*/
|
||||
@ -58,7 +70,6 @@ class APIClient {
|
||||
$this->curl_timout = $seconds;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @param string $resourcePath path to method endpoint
|
||||
* @param string $method method to call
|
||||
@ -121,25 +132,35 @@ class APIClient {
|
||||
}
|
||||
curl_setopt($curl, CURLOPT_URL, $url);
|
||||
|
||||
// Set user agent
|
||||
if ($this->user_agent) {
|
||||
curl_setopt($curl, CURLOPT_USERAGENT, $this->user_agent);
|
||||
} else { // use PHP-Swagger as the default user agent
|
||||
curl_setopt($curl, CURLOPT_USERAGENT, 'PHP-Swagger');
|
||||
}
|
||||
|
||||
// Make the request
|
||||
$response = curl_exec($curl);
|
||||
$response_info = curl_getinfo($curl);
|
||||
|
||||
// Handle the response
|
||||
if ($response_info['http_code'] == 0) {
|
||||
throw new Exception("TIMEOUT: api call to " . $url .
|
||||
" took more than 5s to return" );
|
||||
} else if ($response_info['http_code'] == 200) {
|
||||
throw new APIClientException("TIMEOUT: api call to " . $url .
|
||||
" took more than 5s to return", 0, $response_info, $response);
|
||||
} else if ($response_info['http_code'] >= 200 && $response_info['http_code'] <= 299 ) {
|
||||
$data = json_decode($response);
|
||||
if (json_last_error() > 0) { // if response is a string
|
||||
$data = $response;
|
||||
}
|
||||
} else if ($response_info['http_code'] == 401) {
|
||||
throw new Exception("Unauthorized API request to " . $url .
|
||||
": ".json_decode($response)->message );
|
||||
throw new APIClientException("Unauthorized API request to " . $url .
|
||||
": " . serialize($response), 0, $response_info, $response);
|
||||
} else if ($response_info['http_code'] == 404) {
|
||||
$data = null;
|
||||
} else {
|
||||
throw new Exception("Can't connect to the api: " . $url .
|
||||
throw new APIClientException("Can't connect to the api: " . $url .
|
||||
" response code: " .
|
||||
$response_info['http_code']);
|
||||
$response_info['http_code'], 0, $response_info, $response);
|
||||
}
|
||||
return $data;
|
||||
}
|
||||
@ -178,7 +199,7 @@ class APIClient {
|
||||
* @return string the serialized object
|
||||
*/
|
||||
public static function toPathValue($value) {
|
||||
return rawurlencode($value);
|
||||
return rawurlencode(toString($value));
|
||||
}
|
||||
|
||||
/**
|
||||
@ -193,20 +214,48 @@ class APIClient {
|
||||
if (is_array($object)) {
|
||||
return implode(',', $object);
|
||||
} else {
|
||||
return $object;
|
||||
return toString($object);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Just pass through the header value for now. Placeholder in case we
|
||||
* find out we need to do something with header values.
|
||||
* Take value and turn it into a string suitable for inclusion in
|
||||
* the header. If it's a string, pass through unchanged
|
||||
* If it's a datetime object, format it in ISO8601
|
||||
* @param string $value a string which will be part of the header
|
||||
* @return string the header string
|
||||
*/
|
||||
public static function toHeaderValue($value) {
|
||||
return $value;
|
||||
return toString($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Take value and turn it into a string suitable for inclusion in
|
||||
* the http body (form parameter). If it's a string, pass through unchanged
|
||||
* If it's a datetime object, format it in ISO8601
|
||||
* @param string $value the value of the form parameter
|
||||
* @return string the form string
|
||||
*/
|
||||
public static function toFormValue($value) {
|
||||
return toString($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Take value and turn it into a string suitable for inclusion in
|
||||
* the parameter. If it's a string, pass through unchanged
|
||||
* If it's a datetime object, format it in ISO8601
|
||||
* @param string $value the value of the parameter
|
||||
* @return string the header string
|
||||
*/
|
||||
public static function toString($value) {
|
||||
if ($value instanceof \DateTime) { // datetime in ISO8601 format
|
||||
return $value->format(\DateTime::ISO8601);
|
||||
}
|
||||
else {
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Deserialize a JSON string into an object
|
||||
*
|
||||
@ -257,3 +306,20 @@ class APIClient {
|
||||
|
||||
}
|
||||
|
||||
class APIClientException extends Exception {
|
||||
protected $response, $response_info;
|
||||
|
||||
public function __construct($message="", $code=0, $response_info=null, $response=null) {
|
||||
parent::__construct($message, $code);
|
||||
$this->response_info = $response_info;
|
||||
$this->response = $response;
|
||||
}
|
||||
|
||||
public function getResponse() {
|
||||
return $this->response;
|
||||
}
|
||||
|
||||
public function getResponseInfo() {
|
||||
return $this->response_info;
|
||||
}
|
||||
}
|
||||
|
359
samples/client/petstore/ruby/lib/PetApi.rb
Normal file
359
samples/client/petstore/ruby/lib/PetApi.rb
Normal file
@ -0,0 +1,359 @@
|
||||
require "uri"
|
||||
|
||||
class PetApi
|
||||
basePath = "http://petstore.swagger.io/v2"
|
||||
# apiInvoker = APIInvoker
|
||||
|
||||
def self.escapeString(string)
|
||||
URI.encode(string.to_s)
|
||||
end
|
||||
|
||||
|
||||
def self.updatePet (body, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.addPet (body, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.findPetsByStatus (status, opts={})
|
||||
query_param_keys = [:status]
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
|
||||
|
||||
response.map {|response| Pet.new(response) }
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.findPetsByTags (tags, opts={})
|
||||
query_param_keys = [:tags]
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
|
||||
|
||||
response.map {|response| Pet.new(response) }
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.getPetById (petId, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# set default values and merge with input
|
||||
options = {
|
||||
|
||||
:petId => petId
|
||||
|
||||
}.merge(opts)
|
||||
|
||||
#resource path
|
||||
path = "/pet/{petId}".sub('{format}','json').sub('{' + 'petId' + '}', escapeString(petId))
|
||||
|
||||
|
||||
# pull querystring keys from options
|
||||
queryopts = options.select do |key,value|
|
||||
query_param_keys.include? key
|
||||
end
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
|
||||
Pet.new(response)
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.updatePetWithForm (petId,name,status, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# set default values and merge with input
|
||||
options = {
|
||||
|
||||
:petId => petId,
|
||||
|
||||
|
||||
:name => name,
|
||||
|
||||
|
||||
:status => status
|
||||
|
||||
}.merge(opts)
|
||||
|
||||
#resource path
|
||||
path = "/pet/{petId}".sub('{format}','json').sub('{' + 'petId' + '}', escapeString(petId))
|
||||
|
||||
|
||||
# pull querystring keys from options
|
||||
queryopts = options.select do |key,value|
|
||||
query_param_keys.include? key
|
||||
end
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.deletePet (api_key,petId, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# set default values and merge with input
|
||||
options = {
|
||||
|
||||
:api_key => api_key,
|
||||
|
||||
|
||||
:petId => petId
|
||||
|
||||
}.merge(opts)
|
||||
|
||||
#resource path
|
||||
path = "/pet/{petId}".sub('{format}','json').sub('{' + 'petId' + '}', escapeString(petId))
|
||||
|
||||
|
||||
# pull querystring keys from options
|
||||
queryopts = options.select do |key,value|
|
||||
query_param_keys.include? key
|
||||
end
|
||||
|
||||
headers = {
|
||||
api_key: api_key,
|
||||
}
|
||||
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.uploadFile (petId,additionalMetadata,file, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# set default values and merge with input
|
||||
options = {
|
||||
|
||||
:petId => petId,
|
||||
|
||||
|
||||
:additionalMetadata => additionalMetadata,
|
||||
|
||||
|
||||
:file => file
|
||||
|
||||
}.merge(opts)
|
||||
|
||||
#resource path
|
||||
path = "/pet/{petId}/uploadImage".sub('{format}','json').sub('{' + 'petId' + '}', escapeString(petId))
|
||||
|
||||
|
||||
# pull querystring keys from options
|
||||
queryopts = options.select do |key,value|
|
||||
query_param_keys.include? key
|
||||
end
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
end
|
176
samples/client/petstore/ruby/lib/StoreApi.rb
Normal file
176
samples/client/petstore/ruby/lib/StoreApi.rb
Normal file
@ -0,0 +1,176 @@
|
||||
require "uri"
|
||||
|
||||
class StoreApi
|
||||
basePath = "http://petstore.swagger.io/v2"
|
||||
# apiInvoker = APIInvoker
|
||||
|
||||
def self.escapeString(string)
|
||||
URI.encode(string.to_s)
|
||||
end
|
||||
|
||||
|
||||
def self.getInventory ( opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
|
||||
|
||||
response.map {|response| map.new(response) }
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.placeOrder (body, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
response = Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
|
||||
Order.new(response)
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.getOrderById (orderId, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# set default values and merge with input
|
||||
options = {
|
||||
|
||||
:orderId => orderId
|
||||
|
||||
}.merge(opts)
|
||||
|
||||
#resource path
|
||||
path = "/store/order/{orderId}".sub('{format}','json').sub('{' + 'orderId' + '}', escapeString(orderId))
|
||||
|
||||
|
||||
# pull querystring keys from options
|
||||
queryopts = options.select do |key,value|
|
||||
query_param_keys.include? key
|
||||
end
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
|
||||
Order.new(response)
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.deleteOrder (orderId, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# set default values and merge with input
|
||||
options = {
|
||||
|
||||
:orderId => orderId
|
||||
|
||||
}.merge(opts)
|
||||
|
||||
#resource path
|
||||
path = "/store/order/{orderId}".sub('{format}','json').sub('{' + 'orderId' + '}', escapeString(orderId))
|
||||
|
||||
|
||||
# pull querystring keys from options
|
||||
queryopts = options.select do |key,value|
|
||||
query_param_keys.include? key
|
||||
end
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
end
|
384
samples/client/petstore/ruby/lib/UserApi.rb
Normal file
384
samples/client/petstore/ruby/lib/UserApi.rb
Normal file
@ -0,0 +1,384 @@
|
||||
require "uri"
|
||||
|
||||
class UserApi
|
||||
basePath = "http://petstore.swagger.io/v2"
|
||||
# apiInvoker = APIInvoker
|
||||
|
||||
def self.escapeString(string)
|
||||
URI.encode(string.to_s)
|
||||
end
|
||||
|
||||
|
||||
def self.createUser (body, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.createUsersWithArrayInput (body, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.createUsersWithListInput (body, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:POST, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.loginUser (username,password, opts={})
|
||||
query_param_keys = [:username,:password]
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
|
||||
string.new(response)
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.logoutUser ( opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# 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
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.getUserByName (username, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# set default values and merge with input
|
||||
options = {
|
||||
|
||||
:username => username
|
||||
|
||||
}.merge(opts)
|
||||
|
||||
#resource path
|
||||
path = "/user/{username}".sub('{format}','json').sub('{' + 'username' + '}', escapeString(username))
|
||||
|
||||
|
||||
# pull querystring keys from options
|
||||
queryopts = options.select do |key,value|
|
||||
query_param_keys.include? key
|
||||
end
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
response = Swagger::Request.new(:GET, path, {:params=>queryopts,:headers=>headers, :body=>post_body }).make.body
|
||||
User.new(response)
|
||||
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.updateUser (username,body, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# set default values and merge with input
|
||||
options = {
|
||||
|
||||
:username => username,
|
||||
|
||||
|
||||
:body => body
|
||||
|
||||
}.merge(opts)
|
||||
|
||||
#resource path
|
||||
path = "/user/{username}".sub('{format}','json').sub('{' + 'username' + '}', escapeString(username))
|
||||
|
||||
|
||||
# pull querystring keys from options
|
||||
queryopts = options.select do |key,value|
|
||||
query_param_keys.include? key
|
||||
end
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:PUT, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
|
||||
def self.deleteUser (username, opts={})
|
||||
query_param_keys = []
|
||||
|
||||
|
||||
|
||||
# set default values and merge with input
|
||||
options = {
|
||||
|
||||
:username => username
|
||||
|
||||
}.merge(opts)
|
||||
|
||||
#resource path
|
||||
path = "/user/{username}".sub('{format}','json').sub('{' + 'username' + '}', escapeString(username))
|
||||
|
||||
|
||||
# pull querystring keys from options
|
||||
queryopts = options.select do |key,value|
|
||||
query_param_keys.include? key
|
||||
end
|
||||
|
||||
|
||||
headers = nil
|
||||
|
||||
|
||||
post_body = nil
|
||||
|
||||
|
||||
|
||||
|
||||
Swagger::Request.new(:DELETE, path, {:params=>queryopts,:headers=>headers, :body=>post_body}).make
|
||||
|
||||
|
||||
end
|
||||
|
||||
end
|
@ -87,4 +87,4 @@
|
||||
end
|
||||
|
||||
end
|
||||
# end
|
||||
# end
|
@ -81,4 +81,4 @@ class ServerError < StandardError
|
||||
end
|
||||
|
||||
class ClientError < StandardError
|
||||
end
|
||||
end
|
@ -19,4 +19,4 @@ module Swagger
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
end
|
@ -196,4 +196,4 @@ module Swagger
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
@ -67,4 +67,4 @@ module Swagger
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
end
|
@ -2,4 +2,3 @@ module Swagger
|
||||
VERSION = "4.06.08"
|
||||
end
|
||||
|
||||
|
||||
|
@ -1,26 +1,33 @@
|
||||
|
||||
class Category
|
||||
attr_accessor :id, :name
|
||||
|
||||
# :internal => :external
|
||||
def self.attribute_map
|
||||
{
|
||||
|
||||
:id => :id,
|
||||
|
||||
:name => :name
|
||||
|
||||
|
||||
}
|
||||
end
|
||||
|
||||
def initialize(attributes = {})
|
||||
return if attributes.empty?
|
||||
# Morph attribute keys into undescored rubyish style
|
||||
|
||||
if self.class.attribute_map[:"id"]
|
||||
|
||||
@id = attributes["id"]
|
||||
end
|
||||
if self.class.attribute_map[:"name"]
|
||||
@name = attributes["name"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"name"]
|
||||
|
||||
@name = attributes["name"]
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
def to_body
|
||||
@ -31,4 +38,3 @@ class Category
|
||||
body
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1,38 +1,65 @@
|
||||
class Order
|
||||
attr_accessor :id, :pet_id, :quantity, :status, :ship_date
|
||||
|
||||
class Order
|
||||
attr_accessor :id, :petId, :quantity, :shipDate, :status, :complete
|
||||
# :internal => :external
|
||||
def self.attribute_map
|
||||
{
|
||||
|
||||
:id => :id,
|
||||
:pet_id => :petId,
|
||||
|
||||
:petId => :petId,
|
||||
|
||||
:quantity => :quantity,
|
||||
|
||||
:shipDate => :shipDate,
|
||||
|
||||
:status => :status,
|
||||
:ship_date => :shipDate
|
||||
|
||||
|
||||
:complete => :complete
|
||||
|
||||
}
|
||||
end
|
||||
|
||||
def initialize(attributes = {})
|
||||
return if attributes.empty?
|
||||
# Morph attribute keys into undescored rubyish style
|
||||
|
||||
if self.class.attribute_map[:"id"]
|
||||
|
||||
@id = attributes["id"]
|
||||
end
|
||||
if self.class.attribute_map[:"pet_id"]
|
||||
@pet_id = attributes["petId"]
|
||||
end
|
||||
if self.class.attribute_map[:"quantity"]
|
||||
@quantity = attributes["quantity"]
|
||||
end
|
||||
if self.class.attribute_map[:"status"]
|
||||
@status = attributes["status"]
|
||||
end
|
||||
if self.class.attribute_map[:"ship_date"]
|
||||
@ship_date = attributes["shipDate"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"petId"]
|
||||
|
||||
@petId = attributes["petId"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"quantity"]
|
||||
|
||||
@quantity = attributes["quantity"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"shipDate"]
|
||||
|
||||
@shipDate = attributes["shipDate"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"status"]
|
||||
|
||||
@status = attributes["status"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"complete"]
|
||||
|
||||
@complete = attributes["complete"]
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
def to_body
|
||||
@ -43,4 +70,3 @@ class Order
|
||||
body
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1,44 +1,69 @@
|
||||
class Pet
|
||||
attr_accessor :id, :category, :name, :photo_urls, :tags, :status
|
||||
|
||||
class Pet
|
||||
attr_accessor :id, :category, :name, :photoUrls, :tags, :status
|
||||
# :internal => :external
|
||||
def self.attribute_map
|
||||
{
|
||||
|
||||
:id => :id,
|
||||
|
||||
:category => :category,
|
||||
|
||||
:name => :name,
|
||||
:photo_urls => :photoUrls,
|
||||
|
||||
:photoUrls => :photoUrls,
|
||||
|
||||
:tags => :tags,
|
||||
|
||||
:status => :status
|
||||
|
||||
|
||||
}
|
||||
end
|
||||
|
||||
def initialize(attributes = {})
|
||||
return if attributes.empty?
|
||||
# Morph attribute keys into undescored rubyish style
|
||||
|
||||
if self.class.attribute_map[:"id"]
|
||||
|
||||
@id = attributes["id"]
|
||||
end
|
||||
if self.class.attribute_map[:"category"]
|
||||
@category = attributes["category"]
|
||||
end
|
||||
if self.class.attribute_map[:"name"]
|
||||
@name = attributes["name"]
|
||||
end
|
||||
if self.class.attribute_map[:"photo_urls"]
|
||||
if (value = attributes["photoUrls"]).is_a?(Array)
|
||||
@photo_urls = valueend
|
||||
end
|
||||
if self.class.attribute_map[:"tags"]
|
||||
if (value = attributes["tags"]).is_a?(Array)
|
||||
@tags = value.map{ |v| Tag.new(v) }end
|
||||
end
|
||||
if self.class.attribute_map[:"status"]
|
||||
@status = attributes["status"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"category"]
|
||||
|
||||
@category = attributes["category"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"name"]
|
||||
|
||||
@name = attributes["name"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"photoUrls"]
|
||||
|
||||
if (value = attributes["photoUrls"]).is_a?(Array)
|
||||
@photoUrls = value
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"tags"]
|
||||
|
||||
if (value = attributes["tags"]).is_a?(Array)
|
||||
@tags = value.map{ |v| Tag.new(v) }
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"status"]
|
||||
|
||||
@status = attributes["status"]
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
def to_body
|
||||
@ -49,4 +74,3 @@ class Pet
|
||||
body
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1,26 +1,33 @@
|
||||
|
||||
class Tag
|
||||
attr_accessor :id, :name
|
||||
|
||||
# :internal => :external
|
||||
def self.attribute_map
|
||||
{
|
||||
|
||||
:id => :id,
|
||||
|
||||
:name => :name
|
||||
|
||||
|
||||
}
|
||||
end
|
||||
|
||||
def initialize(attributes = {})
|
||||
return if attributes.empty?
|
||||
# Morph attribute keys into undescored rubyish style
|
||||
|
||||
if self.class.attribute_map[:"id"]
|
||||
|
||||
@id = attributes["id"]
|
||||
end
|
||||
if self.class.attribute_map[:"name"]
|
||||
@name = attributes["name"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"name"]
|
||||
|
||||
@name = attributes["name"]
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
def to_body
|
||||
@ -31,4 +38,3 @@ class Tag
|
||||
body
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -1,50 +1,81 @@
|
||||
class User
|
||||
attr_accessor :id, :first_name, :username, :last_name, :email, :password, :phone, :user_status
|
||||
|
||||
class User
|
||||
attr_accessor :id, :username, :firstName, :lastName, :email, :password, :phone, :userStatus
|
||||
# :internal => :external
|
||||
def self.attribute_map
|
||||
{
|
||||
|
||||
:id => :id,
|
||||
:first_name => :firstName,
|
||||
|
||||
:username => :username,
|
||||
:last_name => :lastName,
|
||||
|
||||
:firstName => :firstName,
|
||||
|
||||
:lastName => :lastName,
|
||||
|
||||
:email => :email,
|
||||
|
||||
:password => :password,
|
||||
|
||||
:phone => :phone,
|
||||
:user_status => :userStatus
|
||||
|
||||
|
||||
:userStatus => :userStatus
|
||||
|
||||
}
|
||||
end
|
||||
|
||||
def initialize(attributes = {})
|
||||
return if attributes.empty?
|
||||
# Morph attribute keys into undescored rubyish style
|
||||
|
||||
if self.class.attribute_map[:"id"]
|
||||
|
||||
@id = attributes["id"]
|
||||
end
|
||||
if self.class.attribute_map[:"first_name"]
|
||||
@first_name = attributes["firstName"]
|
||||
end
|
||||
if self.class.attribute_map[:"username"]
|
||||
@username = attributes["username"]
|
||||
end
|
||||
if self.class.attribute_map[:"last_name"]
|
||||
@last_name = attributes["lastName"]
|
||||
end
|
||||
if self.class.attribute_map[:"email"]
|
||||
@email = attributes["email"]
|
||||
end
|
||||
if self.class.attribute_map[:"password"]
|
||||
@password = attributes["password"]
|
||||
end
|
||||
if self.class.attribute_map[:"phone"]
|
||||
@phone = attributes["phone"]
|
||||
end
|
||||
if self.class.attribute_map[:"user_status"]
|
||||
@user_status = attributes["userStatus"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"username"]
|
||||
|
||||
@username = attributes["username"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"firstName"]
|
||||
|
||||
@firstName = attributes["firstName"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"lastName"]
|
||||
|
||||
@lastName = attributes["lastName"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"email"]
|
||||
|
||||
@email = attributes["email"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"password"]
|
||||
|
||||
@password = attributes["password"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"phone"]
|
||||
|
||||
@phone = attributes["phone"]
|
||||
|
||||
end
|
||||
|
||||
if self.class.attribute_map[:"userStatus"]
|
||||
|
||||
@userStatus = attributes["userStatus"]
|
||||
|
||||
end
|
||||
|
||||
|
||||
end
|
||||
|
||||
def to_body
|
||||
@ -55,4 +86,3 @@ class User
|
||||
body
|
||||
end
|
||||
end
|
||||
|
||||
|
22
samples/client/petstore/ruby/swagger/configuration.rb
Normal file
22
samples/client/petstore/ruby/swagger/configuration.rb
Normal file
@ -0,0 +1,22 @@
|
||||
module Swagger
|
||||
|
||||
class Configuration
|
||||
require 'swagger/version'
|
||||
|
||||
attr_accessor :format, :api_key, :username, :password, :auth_token, :scheme, :host, :base_path, :user_agent, :logger, :inject_format, :force_ending_format, :camelize_params
|
||||
|
||||
# Defaults go in here..
|
||||
def initialize
|
||||
@format = 'json'
|
||||
@scheme = 'http'
|
||||
@host = 'api.wordnik.com'
|
||||
@base_path = '/v4'
|
||||
@user_agent = "ruby-#{Swagger::VERSION}"
|
||||
@inject_format = true
|
||||
@force_ending_format = false
|
||||
@camelize_params = true
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
199
samples/client/petstore/ruby/swagger/request.rb
Normal file
199
samples/client/petstore/ruby/swagger/request.rb
Normal file
@ -0,0 +1,199 @@
|
||||
module Swagger
|
||||
|
||||
class Request
|
||||
require 'uri'
|
||||
require 'addressable/uri'
|
||||
require 'typhoeus'
|
||||
require "swagger/version"
|
||||
|
||||
attr_accessor :host, :path, :format, :params, :body, :http_method, :headers
|
||||
|
||||
|
||||
# All requests must have an HTTP method and a path
|
||||
# Optionals parameters are :params, :headers, :body, :format, :host
|
||||
#
|
||||
def initialize(http_method, path, attributes={})
|
||||
attributes[:format] ||= Swagger.configuration.format
|
||||
attributes[:params] ||= {}
|
||||
|
||||
# Set default headers
|
||||
default_headers = {
|
||||
'Content-Type' => "application/#{attributes[:format].downcase}",
|
||||
:api_key => Swagger.configuration.api_key
|
||||
}
|
||||
|
||||
# api_key from headers hash trumps the default, even if its value is blank
|
||||
if attributes[:headers].present? && attributes[:headers].has_key?(:api_key)
|
||||
default_headers.delete(:api_key)
|
||||
end
|
||||
|
||||
# api_key from params hash trumps all others (headers and default_headers)
|
||||
if attributes[:params].present? && attributes[:params].has_key?(:api_key)
|
||||
default_headers.delete(:api_key)
|
||||
attributes[:headers].delete(:api_key) if attributes[:headers].present?
|
||||
end
|
||||
|
||||
# Merge argument headers into defaults
|
||||
attributes[:headers] = default_headers.merge(attributes[:headers] || {})
|
||||
|
||||
# Stick in the auth token if there is one
|
||||
if Swagger.authenticated?
|
||||
attributes[:headers].merge!({:auth_token => Swagger.configuration.auth_token})
|
||||
end
|
||||
|
||||
self.http_method = http_method.to_sym
|
||||
self.path = path
|
||||
attributes.each do |name, value|
|
||||
send("#{name.to_s.underscore.to_sym}=", value)
|
||||
end
|
||||
end
|
||||
|
||||
# Construct a base URL
|
||||
#
|
||||
def url(options = {})
|
||||
u = Addressable::URI.new(
|
||||
:scheme => Swagger.configuration.scheme,
|
||||
:host => Swagger.configuration.host,
|
||||
:path => self.interpreted_path,
|
||||
:query => self.query_string.sub(/\?/, '')
|
||||
).to_s
|
||||
|
||||
# Drop trailing question mark, if present
|
||||
u.sub! /\?$/, ''
|
||||
|
||||
# Obfuscate API key?
|
||||
u.sub! /api\_key=\w+/, 'api_key=YOUR_API_KEY' if options[:obfuscated]
|
||||
|
||||
u
|
||||
end
|
||||
|
||||
# Iterate over the params hash, injecting any path values into the path string
|
||||
#
|
||||
# e.g. /word.{format}/{word}/entries => /word.json/cat/entries
|
||||
def interpreted_path
|
||||
p = self.path.dup
|
||||
|
||||
# Fill in the path params
|
||||
self.params.each_pair do |key, value|
|
||||
p = p.gsub("{#{key}}", value.to_s)
|
||||
end
|
||||
|
||||
# Stick a .{format} placeholder into the path if there isn't
|
||||
# one already or an actual format like json or xml
|
||||
# e.g. /words/blah => /words.{format}/blah
|
||||
if Swagger.configuration.inject_format
|
||||
unless ['.json', '.xml', '{format}'].any? {|s| p.downcase.include? s }
|
||||
p = p.sub(/^(\/?\w+)/, "\\1.#{format}")
|
||||
end
|
||||
end
|
||||
|
||||
# Stick a .{format} placeholder on the end of the path if there isn't
|
||||
# one already or an actual format like json or xml
|
||||
# e.g. /words/blah => /words/blah.{format}
|
||||
if Swagger.configuration.force_ending_format
|
||||
unless ['.json', '.xml', '{format}'].any? {|s| p.downcase.include? s }
|
||||
p = "#{p}.#{format}"
|
||||
end
|
||||
end
|
||||
|
||||
p = p.sub("{format}", self.format.to_s)
|
||||
|
||||
URI.encode [Swagger.configuration.base_path, p].join("/").gsub(/\/+/, '/')
|
||||
end
|
||||
|
||||
# Massage the request body into a state of readiness
|
||||
# If body is a hash, camelize all keys then convert to a json string
|
||||
#
|
||||
def body=(value)
|
||||
if value.is_a?(Hash)
|
||||
value = value.inject({}) do |memo, (k,v)|
|
||||
memo[k.to_s.camelize(:lower).to_sym] = v
|
||||
memo
|
||||
end
|
||||
end
|
||||
@body = value
|
||||
end
|
||||
|
||||
# If body is an object, JSONify it before making the actual request.
|
||||
#
|
||||
def outgoing_body
|
||||
body.is_a?(String) ? body : body.to_json
|
||||
end
|
||||
|
||||
# Construct a query string from the query-string-type params
|
||||
def query_string
|
||||
|
||||
# Iterate over all params,
|
||||
# .. removing the ones that are part of the path itself.
|
||||
# .. stringifying values so Addressable doesn't blow up.
|
||||
query_values = {}
|
||||
self.params.each_pair do |key, value|
|
||||
next if self.path.include? "{#{key}}" # skip path params
|
||||
next if value.blank? && value.class != FalseClass # skip empties
|
||||
if Swagger.configuration.camelize_params
|
||||
key = key.to_s.camelize(:lower).to_sym unless key.to_sym == :api_key # api_key is not a camelCased param
|
||||
end
|
||||
query_values[key] = value.to_s
|
||||
end
|
||||
|
||||
# We don't want to end up with '?' as our query string
|
||||
# if there aren't really any params
|
||||
return "" if query_values.blank?
|
||||
|
||||
# Addressable requires query_values to be set after initialization..
|
||||
qs = Addressable::URI.new
|
||||
qs.query_values = query_values
|
||||
qs.to_s
|
||||
end
|
||||
|
||||
def make
|
||||
logger = Logger.new STDOUT
|
||||
logger.debug self.url
|
||||
response = case self.http_method.to_sym
|
||||
when :get,:GET
|
||||
Typhoeus::Request.get(
|
||||
self.url,
|
||||
:headers => self.headers.stringify_keys,
|
||||
)
|
||||
|
||||
when :post,:POST
|
||||
Typhoeus::Request.post(
|
||||
self.url,
|
||||
:body => self.outgoing_body,
|
||||
:headers => self.headers.stringify_keys,
|
||||
)
|
||||
|
||||
when :put,:PUT
|
||||
Typhoeus::Request.put(
|
||||
self.url,
|
||||
:body => self.outgoing_body,
|
||||
:headers => self.headers.stringify_keys,
|
||||
)
|
||||
|
||||
when :delete,:DELETE
|
||||
Typhoeus::Request.delete(
|
||||
self.url,
|
||||
:body => self.outgoing_body,
|
||||
:headers => self.headers.stringify_keys,
|
||||
)
|
||||
end
|
||||
Response.new(response)
|
||||
end
|
||||
|
||||
def response
|
||||
self.make
|
||||
end
|
||||
|
||||
def response_code_pretty
|
||||
return unless @response.present?
|
||||
@response.code.to_s
|
||||
end
|
||||
|
||||
def response_headers_pretty
|
||||
return unless @response.present?
|
||||
# JSON.pretty_generate(@response.headers).gsub(/\n/, '<br/>') # <- This was for RestClient
|
||||
@response.headers.gsub(/\n/, '<br/>') # <- This is for Typhoeus
|
||||
end
|
||||
|
||||
end
|
||||
end
|
70
samples/client/petstore/ruby/swagger/response.rb
Normal file
70
samples/client/petstore/ruby/swagger/response.rb
Normal file
@ -0,0 +1,70 @@
|
||||
module Swagger
|
||||
|
||||
class Response
|
||||
require 'json'
|
||||
|
||||
attr_accessor :raw
|
||||
|
||||
def initialize(raw)
|
||||
self.raw = raw
|
||||
|
||||
case self.code
|
||||
when 500..510 then raise(ServerError, self.error_message)
|
||||
when 299..426 then raise(ClientError, self.error_message)
|
||||
end
|
||||
end
|
||||
|
||||
def code
|
||||
raw.code
|
||||
end
|
||||
|
||||
# Account for error messages that take different forms...
|
||||
def error_message
|
||||
body['message']
|
||||
rescue
|
||||
body
|
||||
end
|
||||
|
||||
# If body is JSON, parse it
|
||||
# Otherwise return raw string
|
||||
def body
|
||||
JSON.parse raw.body
|
||||
rescue
|
||||
raw.body
|
||||
end
|
||||
|
||||
# `headers_hash` is a Typhoeus-specific extension of Hash,
|
||||
# so simplify it back into a regular old Hash.
|
||||
def headers
|
||||
h = {}
|
||||
raw.headers_hash.each {|k,v| h[k] = v }
|
||||
h
|
||||
end
|
||||
|
||||
# Extract the response format from the header hash
|
||||
# e.g. {'Content-Type' => 'application/json'}
|
||||
def format
|
||||
headers['Content-Type'].split("/").last.downcase
|
||||
end
|
||||
|
||||
def json?
|
||||
format == 'json'
|
||||
end
|
||||
|
||||
def xml?
|
||||
format == 'xml'
|
||||
end
|
||||
|
||||
def pretty_body
|
||||
return unless body.present?
|
||||
case format
|
||||
when 'json' then JSON.pretty_generate(body).gsub(/\n/, '<br/>')
|
||||
end
|
||||
end
|
||||
|
||||
def pretty_headers
|
||||
JSON.pretty_generate(headers).gsub(/\n/, '<br/>')
|
||||
end
|
||||
|
||||
end
|
||||
end
|
4
samples/client/petstore/ruby/swagger/version.rb
Normal file
4
samples/client/petstore/ruby/swagger/version.rb
Normal file
@ -0,0 +1,4 @@
|
||||
module Swagger
|
||||
VERSION = "4.06.08"
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user