Merge remote-tracking branch 'origin/master' into 2.3.0

This commit is contained in:
wing328
2017-03-22 20:52:26 +08:00
55 changed files with 129 additions and 86 deletions

View File

@@ -588,7 +588,7 @@ and `config.json` contains the following as an example:
```
Supported config options can be different per language. Running `config-help -l {lang}` will show available options.
**These options are applied via configuration file (e.g. config.json) or by passing them with `-D{optionName}={optionValue}**. (If `-D{optionName}` does not work, please open a [ticket](https://github.com/swagger-api/swagger-codegen/issues/new) and we'll look into it)
**These options are applied via configuration file (e.g. config.json) or by passing them with `-D{optionName}={optionValue}`**. (If `-D{optionName}` does not work, please open a [ticket](https://github.com/swagger-api/swagger-codegen/issues/new) and we'll look into it)
```
java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar config-help -l java

View File

@@ -92,7 +92,7 @@ public class CSharpClientCodegen extends AbstractCSharpCodegen {
.put(NET35, ".NET Framework 3.5 compatible")
.put(NET45, ".NET Framework 4.5+ compatible")
.put(NETSTANDARD, ".NET Standard 1.3 compatible")
.put(UWP, "Universal Windows Platform - beta support")
.put(UWP, "Universal Windows Platform (IMPORTANT: this will be decomissioned and replaced by v5.0)")
.build();
framework.defaultValue(this.targetFramework);
framework.setEnum(frameworks);

View File

@@ -34,6 +34,7 @@ public class FlaskConnexionCodegen extends DefaultCodegen implements CodegenConf
protected String packageVersion;
protected String controllerPackage;
protected String defaultController;
protected Map<Character, String> regexModifiers;
public FlaskConnexionCodegen() {
super();
@@ -110,6 +111,14 @@ public class FlaskConnexionCodegen extends DefaultCodegen implements CodegenConf
supportingFiles.add(new SupportingFile("Dockerfile.mustache", "", "Dockerfile"));
supportingFiles.add(new SupportingFile("dockerignore.mustache", "", ".dockerignore"));
regexModifiers = new HashMap<Character, String>();
regexModifiers.put('i', "IGNORECASE");
regexModifiers.put('l', "LOCALE");
regexModifiers.put('m', "MULTILINE");
regexModifiers.put('s', "DOTALL");
regexModifiers.put('u', "UNICODE");
regexModifiers.put('x', "VERBOSE");
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_NAME, "python package name (convention: snake_case).")
.defaultValue("swagger_server"));
cliOptions.add(new CliOption(CodegenConstants.PACKAGE_VERSION, "python package version.")
@@ -640,8 +649,42 @@ public class FlaskConnexionCodegen extends DefaultCodegen implements CodegenConf
if (StringUtils.isNotEmpty(property.pattern)) {
addImport(model, "import re");
}
postProcessPattern(property.pattern, property.vendorExtensions);
}
@Override
public void postProcessParameter(CodegenParameter parameter){
postProcessPattern(parameter.pattern, parameter.vendorExtensions);
}
/*
* The swagger pattern spec follows the Perl convention and style of modifiers. Python
* does not support this in as natural a way so it needs to convert it. See
* https://docs.python.org/2/howto/regex.html#compilation-flags for details.
*/
public void postProcessPattern(String pattern, Map<String, Object> vendorExtensions){
if(pattern != null) {
int i = pattern.lastIndexOf('/');
//Must follow Perl /pattern/modifiers convention
if(pattern.charAt(0) != '/' || i < 2) {
throw new IllegalArgumentException("Pattern must follow the Perl "
+ "/pattern/modifiers convention. "+pattern+" is not valid.");
}
String regex = pattern.substring(1, i).replace("'", "\\'");
List<String> modifiers = new ArrayList<String>();
for(char c : pattern.substring(i).toCharArray()) {
if(regexModifiers.containsKey(c)) {
String modifier = regexModifiers.get(c);
modifiers.add(modifier);
}
}
vendorExtensions.put("x-regex", regex);
vendorExtensions.put("x-modifiers", modifiers);
}
}
}

View File

@@ -32,7 +32,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
protected Map<Character, String> regexModifiers;
private String testFolder;
private String testFolder;
public PythonClientCodegen() {
super();
@@ -292,12 +292,12 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
@Override
public String apiTestFileFolder() {
return outputFolder + File.separatorChar + testFolder;
return outputFolder + File.separatorChar + testFolder;
}
@Override
public String modelTestFileFolder() {
return outputFolder + File.separatorChar + testFolder;
return outputFolder + File.separatorChar + testFolder;
}
@Override
@@ -433,8 +433,8 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
@Override
public String toModelTestFilename(String name) {
return "test_" + toModelFilename(name);
};
return "test_" + toModelFilename(name);
}
@Override
public String toApiFilename(String name) {
@@ -447,7 +447,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
@Override
public String toApiTestFilename(String name) {
return "test_" + toApiFilename(name);
return "test_" + toApiFilename(name);
}
@Override

View File

@@ -24,7 +24,7 @@ namespace {{packageName}}.Client
/// Initializes a new instance of the <see cref="ApiClient" /> class.
/// </summary>
/// <param name="basePath">The base path.</param>
public ApiClient(String basePath="{{basePath}}")
public ApiClient(String basePath="{{{basePath}}}")
{
BasePath = basePath;
RestClient = new RestClient(BasePath);

View File

@@ -89,7 +89,7 @@ namespace {{packageName}}.Api
if ({{paramName}} == null) throw new ApiException(400, "Missing required parameter '{{paramName}}' when calling {{nickname}}");
{{/required}}{{/allParams}}
var path = "{{path}}";
var path = "{{{path}}}";
path = path.Replace("{format}", "json");
{{#pathParams}}path = path.Replace("{" + "{{baseName}}" + "}", ApiClient.ParameterToString({{{paramName}}}));
{{/pathParams}}

View File

@@ -13,13 +13,13 @@ import java.util.*;
@Mixin(ApiUtils)
{{#operations}}
class {{classname}} {
String basePath = "{{basePath}}"
String basePath = "{{{basePath}}}"
String versionPath = "/api/v1"
{{#operation}}
def {{operationId}} ({{#allParams}} {{{dataType}}} {{paramName}},{{/allParams}} Closure onSuccess, Closure onFailure) {
// create path and map path parameters (TODO)
String resourcePath = "{{path}}"
String resourcePath = "{{{path}}}"
// query params
def queryParams = [:]

View File

@@ -57,7 +57,7 @@ import {{invokerPackage}}.auth.OAuth;
{{>generatedAnnotation}}
public class ApiClient {
private Map<String, String> defaultHeaderMap = new HashMap<String, String>();
private String basePath = "{{basePath}}";
private String basePath = "{{{basePath}}}";
private boolean debugging = false;
private int connectionTimeout = 0;

View File

@@ -32,7 +32,7 @@ public interface {{classname}} {
*/
{{#formParams}}{{#-first}}
{{#isMultipart}}@retrofit.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit.http.FormUrlEncoded{{/isMultipart}}{{/-first}}{{/formParams}}
@{{httpMethod}}("{{path}}")
@{{httpMethod}}("{{{path}}}")
{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Object{{/returnType}} {{operationId}}({{^allParams}});{{/allParams}}
{{#allParams}}{{>libraries/retrofit/queryParams}}{{>libraries/retrofit/pathParams}}{{>libraries/retrofit/headerParams}}{{>libraries/retrofit/bodyParams}}{{>libraries/retrofit/formParams}}{{#hasMore}}, {{/hasMore}}{{^hasMore}}
);{{/hasMore}}{{/allParams}}
@@ -47,7 +47,7 @@ public interface {{classname}} {
*/
{{#formParams}}{{#-first}}
{{#isMultipart}}@retrofit.http.Multipart{{/isMultipart}}{{^isMultipart}}@retrofit.http.FormUrlEncoded{{/isMultipart}}{{/-first}}{{/formParams}}
@{{httpMethod}}("{{path}}")
@{{httpMethod}}("{{{path}}}")
void {{operationId}}(
{{#allParams}}{{>libraries/retrofit/queryParams}}{{>libraries/retrofit/pathParams}}{{>libraries/retrofit/headerParams}}{{>libraries/retrofit/bodyParams}}{{>libraries/retrofit/formParams}}, {{/allParams}}Callback<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Object{{/returnType}}> cb
);

View File

@@ -46,7 +46,7 @@ public interface {{classname}} {
{{/-first}}
{{/prioritizedContentTypes}}
{{/formParams}}
@{{httpMethod}}("{{path}}")
@{{httpMethod}}("{{{path}}}")
{{^usePlay24WS}}{{^doNotUseRx}}Observable{{/doNotUseRx}}{{#doNotUseRx}}Call{{/doNotUseRx}}{{/usePlay24WS}}{{#usePlay24WS}}F.Promise<Response{{/usePlay24WS}}<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Object{{/returnType}}>{{#usePlay24WS}}>{{/usePlay24WS}} {{operationId}}({{^allParams}});{{/allParams}}
{{#allParams}}{{>libraries/retrofit2/queryParams}}{{>libraries/retrofit2/pathParams}}{{>libraries/retrofit2/headerParams}}{{>libraries/retrofit2/bodyParams}}{{>libraries/retrofit2/formParams}}{{#hasMore}}, {{/hasMore}}{{^hasMore}}
);{{/hasMore}}{{/allParams}}

View File

@@ -9,12 +9,12 @@
<java.version>{{#java8}}1.8{{/java8}}{{^java8}}1.7{{/java8}}</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<springfox-version>2.5.0</springfox-version>
<springfox-version>2.6.1</springfox-version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<version>1.4.5.RELEASE</version>
</parent>
<build>
<sourceDirectory>src/main/java</sourceDirectory>

View File

@@ -38,7 +38,7 @@ goog.require('{{import}}');
/** @private {!string} */
this.basePath_ = $injector.has('{{classname}}BasePath') ?
/** @type {!string} */ ($injector.get('{{classname}}BasePath')) :
'{{basePath}}';
'{{{basePath}}}';
/** @private {!Object<string, string>} */
this.defaultHeaders_ = $injector.has('{{classname}}DefaultHeaders') ?
@@ -64,7 +64,7 @@ goog.require('{{import}}');
*/
{{package}}.{{classname}}.prototype.{{nickname}} = function({{#allParams}}{{^required}}opt_{{/required}}{{paramName}}, {{/allParams}}opt_extraHttpRequestParams) {
/** @const {string} */
var path = this.basePath_ + '{{path}}'{{#pathParams}}
var path = this.basePath_ + '{{{path}}}'{{#pathParams}}
.replace('{' + '{{baseName}}' + '}', String({{^required}}opt_{{/required}}{{paramName}})){{/pathParams}};
/** @type {!Object} */

View File

@@ -32,9 +32,9 @@
{{#emitJSDoc}} /**
* The base URL against which to resolve every API call's (relative) path.
* @type {String}
* @default {{basePath}}
* @default {{{basePath}}}
*/
{{/emitJSDoc}} this.basePath = '{{basePath}}'.replace(/\/+$/, '');
{{/emitJSDoc}} this.basePath = '{{{basePath}}}'.replace(/\/+$/, '');
{{#emitJSDoc}} /**
* The authentication methods to be included for all API calls.

View File

@@ -83,7 +83,7 @@ export const {{classname}}FetchParamCreator = {
}
{{/required}}
{{/allParams}}
const baseUrl = `{{path}}`{{#pathParams}}
const baseUrl = `{{{path}}}`{{#pathParams}}
.replace(`{${"{{baseName}}"}}`, `${ params["{{paramName}}"] }`){{/pathParams}};
let urlObj = url.parse(baseUrl, true);
{{#hasQueryParams}}

View File

@@ -20,7 +20,7 @@ object {{classname}} {
{{>javadoc}}
{{/javadocRenderer}}
def {{operationId}}({{>methodParameters}}): ApiRequest[{{>operationReturnType}}] =
ApiRequest[{{>operationReturnType}}](ApiMethods.{{httpMethod.toUpperCase}}, "{{basePath}}", "{{path}}", {{#consumes.0}}"{{{mediaType}}}"{{/consumes.0}}{{^consumes}}"application/json"{{/consumes}})
ApiRequest[{{>operationReturnType}}](ApiMethods.{{httpMethod.toUpperCase}}, "{{{basePath}}}", "{{{path}}}", {{#consumes.0}}"{{{mediaType}}}"{{/consumes.0}}{{^consumes}}"application/json"{{/consumes}})
{{#authMethods}}{{#isApiKey}}.withApiKey(apiKey, "{{keyParamName}}", {{#isKeyInQuery}}QUERY{{/isKeyInQuery}}{{#isKeyInHeader}}HEADER{{/isKeyInHeader}})
{{/isApiKey}}{{#isBasic}}.withCredentials(basicAuth)
{{/isBasic}}{{/authMethods}}{{#bodyParam}}.withBody({{paramName}})

View File

@@ -20,7 +20,7 @@ import java.io.File;
{{#operations}}
public class {{classname}} {
String basePath = "{{basePath}}";
String basePath = "{{{basePath}}}";
ApiInvoker apiInvoker = ApiInvoker.getInstance();
public void addHeader(String key, String value) {
@@ -56,7 +56,7 @@ public class {{classname}} {
{{/required}}{{/allParams}}
// create path and map variables
String localVarPath = "{{path}}".replaceAll("\\{format\\}","json"){{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}", apiInvoker.escapeString({{{paramName}}}.toString())){{/pathParams}};
String localVarPath = "{{{path}}}".replaceAll("\\{format\\}","json"){{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}", apiInvoker.escapeString({{{paramName}}}.toString())){{/pathParams}};
// query params
List<Pair> localVarQueryParams = new ArrayList<Pair>();

View File

@@ -27,7 +27,7 @@ import java.util.concurrent.TimeoutException;
{{#operations}}
public class {{classname}} {
String basePath = "{{basePath}}";
String basePath = "{{{basePath}}}";
ApiInvoker apiInvoker = ApiInvoker.getInstance();
public void addHeader(String key, String value) {
@@ -66,7 +66,7 @@ public class {{classname}} {
{{/allParams}}
// create path and map variables
String path = "{{path}}"{{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}", apiInvoker.escapeString({{{paramName}}}.toString())){{/pathParams}};
String path = "{{{path}}}"{{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}", apiInvoker.escapeString({{{paramName}}}.toString())){{/pathParams}};
// query params
List<Pair> queryParams = new ArrayList<Pair>();
@@ -156,7 +156,7 @@ public class {{classname}} {
{{/required}}{{/allParams}}
// create path and map variables
String path = "{{path}}".replaceAll("\\{format\\}","json"){{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}", apiInvoker.escapeString({{{paramName}}}.toString())){{/pathParams}};
String path = "{{{path}}}".replaceAll("\\{format\\}","json"){{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}", apiInvoker.escapeString({{{paramName}}}.toString())){{/pathParams}};
// query params
List<Pair> queryParams = new ArrayList<Pair>();

View File

@@ -14,7 +14,7 @@ class {{classname}}(client: TransportClient, config: SwaggerConfig) extends ApiC
{{/required}}{{#required}}{{paramName}}: {{dataType}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}}{{#hasMore}},
{{/hasMore}}{{/required}}{{/allParams}})(implicit reader: ClientResponseReader[{{#returnType}}{{returnType}}{{/returnType}}{{^returnType}}Unit{{/returnType}}]{{#bodyParams}}, writer: RequestWriter[{{dataType}}]{{/bodyParams}}){{#returnType}}: Future[{{returnType}}]{{/returnType}}{{^returnType}}: Future[Unit]{{/returnType}} = {
// create path and map variables
val path = (addFmt("{{path}}"){{#pathParams}}
val path = (addFmt("{{{path}}}"){{#pathParams}}
replaceAll ("\\{" + "{{baseName}}" + "\\}",{{paramName}}.toString){{/pathParams}})
// query params

View File

@@ -815,10 +815,10 @@ call_{{operationId}}() {
local query_parameter_names=({{#queryParams}}{{baseName}}{{#hasMore}} {{/hasMore}}{{/queryParams}})
if [[ $force = false ]]; then
validate_request_parameters "{{basePathWithoutHost}}{{path}}" path_parameter_names query_parameter_names
validate_request_parameters "{{basePathWithoutHost}}{{{path}}}" path_parameter_names query_parameter_names
fi
local path=$(build_request_path "{{basePathWithoutHost}}{{path}}" path_parameter_names query_parameter_names)
local path=$(build_request_path "{{basePathWithoutHost}}{{{path}}}" path_parameter_names query_parameter_names)
local method="{{httpMethod}}"
local headers_curl=$(header_arguments_to_curl)
if [[ -n $header_accept ]]; then

View File

@@ -37,7 +37,7 @@ pplx::task<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}void{{/r
{{/isContainer}}{{/isPrimitiveType}}{{/required}}{{/allParams}}
std::shared_ptr<ApiConfiguration> apiConfiguration( m_ApiClient->getConfiguration() );
utility::string_t path = U("{{path}}");
utility::string_t path = U("{{{path}}}");
{{#pathParams}}boost::replace_all(path, U("{") U("{{baseName}}") U("}"), ApiClient::parameterToString({{{paramName}}}));
{{/pathParams}}

View File

@@ -25,7 +25,7 @@ class {{classname}} {
{{/allParams}}
// create path and map variables
String path = "{{path}}".replaceAll("{format}","json"){{#pathParams}}.replaceAll("{" + "{{baseName}}" + "}", {{{paramName}}}.toString()){{/pathParams}};
String path = "{{{path}}}".replaceAll("{format}","json"){{#pathParams}}.replaceAll("{" + "{{baseName}}" + "}", {{{paramName}}}.toString()){{/pathParams}};
// query params
List<QueryParam> queryParams = [];

View File

@@ -5,7 +5,7 @@ defmodule {{#modulized}}{{appName}}{{/modulized}}.Api.{{classname}} do
use Tesla
plug Tesla.Middleware.BaseUrl, "{{basePath}}"
plug Tesla.Middleware.BaseUrl, "{{{basePath}}}"
plug Tesla.Middleware.JSON
{{#operations}}
{{#operation}}

View File

@@ -36,7 +36,7 @@ public class {{classname}} extends SwaggerApi {
*/
public function {{nickname}} ({{#allParams}}{{paramName}}: {{{dataType}}}{{#hasMore}}, {{/hasMore}}{{/allParams}}): String {
// create path and map variables
var path: String = "{{path}}".replace(/{format}/g,"xml"){{#pathParams}}.replace("{" + "{{baseName}}" + "}", getApiInvoker().escapeString({{{paramName}}})){{/pathParams}};
var path: String = "{{{path}}}".replace(/{format}/g,"xml"){{#pathParams}}.replace("{" + "{{baseName}}" + "}", getApiInvoker().escapeString({{{paramName}}})){{/pathParams}};
// query params
var queryParams: Dictionary = new Dictionary();

View File

@@ -43,7 +43,7 @@ func (a {{{classname}}}) {{{nickname}}}({{#allParams}}{{#required}}{{paramName}}
var localVarHttpMethod = strings.ToUpper("{{httpMethod}}")
// create path and map variables
localVarPath := a.Configuration.BasePath + "{{path}}"{{#pathParams}}
localVarPath := a.Configuration.BasePath + "{{{path}}}"{{#pathParams}}
localVarPath = strings.Replace(localVarPath, "{"+"{{baseName}}"+"}", fmt.Sprintf("%v", {{paramName}}), -1){{/pathParams}}
localVarHeaderParams := make(map[string]string)

View File

@@ -28,7 +28,7 @@
- (instancetype) init {
self = [super init];
if (self) {
_host = @"{{basePath}}";
_host = @"{{{basePath}}}";
_username = @"";
_password = @"";
_accessToken= @"";

View File

@@ -77,7 +77,7 @@ NSInteger k{{classname}}MissingParamErrorCode = 234513;
{{/required}}
{{/allParams}}
NSMutableString* resourcePath = [NSMutableString stringWithFormat:@"{{path}}"];
NSMutableString* resourcePath = [NSMutableString stringWithFormat:@"{{{path}}}"];
NSMutableDictionary *pathParams = [[NSMutableDictionary alloc] init];
{{#pathParams}}

View File

@@ -33,7 +33,7 @@ sub _new_instance
my $class = shift;
my (%args) = (
'ua' => LWP::UserAgent->new,
'base_url' => '{{basePath}}',
'base_url' => '{{{basePath}}}',
@_
);

View File

@@ -78,7 +78,7 @@ sub {{operationId}} {
{{/required}}
{{/allParams}}
# parse inputs
my $_resource_path = '{{path}}';
my $_resource_path = '{{{path}}}';
my $_method = '{{httpMethod}}';
my $query_params = {};

View File

@@ -163,7 +163,7 @@ use \{{invokerPackage}}\ObjectSerializer;
{{/hasValidation}}
{{/allParams}}
// parse inputs
$resourcePath = "{{path}}";
$resourcePath = "{{{path}}}";
$httpBody = '';
$queryParams = [];
$headerParams = [];
@@ -276,7 +276,7 @@ use \{{invokerPackage}}\ObjectSerializer;
{{^returnType}}
null,
{{/returnType}}
'{{path}}'
'{{{path}}}'
);
{{#returnType}}

View File

@@ -78,7 +78,7 @@ class Configuration
*
* @var string
*/
protected $host = '{{basePath}}';
protected $host = '{{{basePath}}}';
/**
* Timeout (second) of the HTTP request, by default set to 0, no timeout

View File

@@ -210,7 +210,7 @@ class {{classname}}(object):
# Authentication setting
auth_settings = [{{#authMethods}}'{{name}}'{{#hasMore}}, {{/hasMore}}{{/authMethods}}]
return self.api_client.call_api('{{path}}', '{{httpMethod}}',
return self.api_client.call_api('{{{path}}}', '{{httpMethod}}',
path_params,
query_params,
header_params,

View File

@@ -36,7 +36,7 @@ class Configuration(object):
Constructor
"""
# Default Base url
self.host = "{{basePath}}"
self.host = "{{{basePath}}}"
# Default api client
self.api_client = None
# Temp file folder for downloading files

View File

@@ -21,7 +21,7 @@ namespace Swagger {
void
{{classname}}::{{nickname}}({{#allParams}}{{{dataType}}} {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) {
QString fullPath;
fullPath.append(this->host).append(this->basePath).append("{{path}}");
fullPath.append(this->host).append(this->basePath).append("{{{path}}}");
{{#pathParams}}
QString {{paramName}}PathParam("{"); {{paramName}}PathParam.append("{{baseName}}").append("}");

View File

@@ -17,7 +17,7 @@ import java.util.Date
import scala.collection.mutable.HashMap
{{#operations}}
class {{classname}}(val defBasePath: String = "{{basePath}}",
class {{classname}}(val defBasePath: String = "{{{basePath}}}",
defApiInvoker: ApiInvoker = ApiInvoker) {
var basePath = defBasePath
var apiInvoker = defApiInvoker
@@ -33,7 +33,7 @@ class {{classname}}(val defBasePath: String = "{{basePath}}",
*/
def {{operationId}}({{#allParams}}{{paramName}}: {{#required}}{{dataType}}{{#defaultValue}} /* = {{{defaultValue}}}*/{{/defaultValue}}{{/required}}{{^required}}Option[{{dataType}}]{{#defaultValue}} /* = {{{defaultValue}}}*/{{/defaultValue}}{{^defaultValue}} = None{{/defaultValue}}{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}){{#returnType}}: Option[{{returnType}}]{{/returnType}} = {
// create path and map variables
val path = "{{path}}".replaceAll("\\{format\\}", "json"){{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}",apiInvoker.escape({{paramName}})){{/pathParams}}
val path = "{{{path}}}".replaceAll("\\{format\\}", "json"){{#pathParams}}.replaceAll("\\{" + "{{baseName}}" + "\\}",apiInvoker.escape({{paramName}})){{/pathParams}}
val contentTypes = List({{#consumes}}"{{{mediaType}}}"{{#hasMore}}, {{/hasMore}}{{/consumes}}{{^consumes}}"application/json"{{/consumes}})
val contentType = contentTypes(0)

View File

@@ -7,7 +7,7 @@
import Foundation
public class {{projectName}}API {
public static var basePath = "{{basePath}}"
public static var basePath = "{{{basePath}}}"
public static var credential: NSURLCredential?
public static var customHeaders: [String:String] = [:]
static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()

View File

@@ -90,7 +90,7 @@ public class {{classname}}: APIBase {
{{#summary}}
{{{summary}}}
{{/summary}}
- {{httpMethod}} {{path}}{{#notes}}
- {{httpMethod}} {{{path}}}{{#notes}}
- {{{notes}}}{{/notes}}{{#subresourceOperation}}
- subresourceOperation: {{subresourceOperation}}{{/subresourceOperation}}{{#defaultResponse}}
- defaultResponse: {{defaultResponse}}{{/defaultResponse}}{{#authMethods}}
@@ -106,7 +106,7 @@ public class {{classname}}: APIBase {
- returns: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{description}}
*/
public class func {{operationId}}WithRequestBuilder({{#allParams}}{{^secondaryParam}}{{paramName}} {{/secondaryParam}}{{paramName}}: {{#isEnum}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) -> RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {
{{^pathParams}}let{{/pathParams}}{{#pathParams}}{{^secondaryParam}}var{{/secondaryParam}}{{/pathParams}} path = "{{path}}"{{#pathParams}}
{{^pathParams}}let{{/pathParams}}{{#pathParams}}{{^secondaryParam}}var{{/secondaryParam}}{{/pathParams}} path = "{{{path}}}"{{#pathParams}}
path = path.stringByReplacingOccurrencesOfString("{{=<% %>=}}{<%baseName%>}<%={{ }}=%>", withString: "\({{paramName}}{{#isEnum}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}.rawValue{{/isContainer}}{{/isEnum}})", options: .LiteralSearch, range: nil){{/pathParams}}
let URLString = {{projectName}}API.basePath + path
{{#bodyParam}}

View File

@@ -7,7 +7,7 @@
import Foundation
open class {{projectName}}API {
open static var basePath = "{{basePath}}"
open static var basePath = "{{{basePath}}}"
open static var credential: URLCredential?
open static var customHeaders: [String:String] = [:]
static var requestBuilderFactory: RequestBuilderFactory = AlamofireRequestBuilderFactory()

View File

@@ -88,7 +88,7 @@ open class {{classname}}: APIBase {
{{#summary}}
{{{summary}}}
{{/summary}}
- {{httpMethod}} {{path}}{{#notes}}
- {{httpMethod}} {{{path}}}{{#notes}}
- {{{notes}}}{{/notes}}{{#subresourceOperation}}
- subresourceOperation: {{subresourceOperation}}{{/subresourceOperation}}{{#defaultResponse}}
- defaultResponse: {{defaultResponse}}{{/defaultResponse}}{{#authMethods}}
@@ -104,7 +104,7 @@ open class {{classname}}: APIBase {
- returns: RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {{description}}
*/
open class func {{operationId}}WithRequestBuilder({{#allParams}}{{paramName}}: {{#isEnum}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}{{{datatypeWithEnum}}}_{{operationId}}{{/isContainer}}{{/isEnum}}{{^isEnum}}{{{dataType}}}{{/isEnum}}{{^required}}? = nil{{/required}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) -> RequestBuilder<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}Void{{/returnType}}> {
{{^pathParams}}let{{/pathParams}}{{#pathParams}}{{^secondaryParam}}var{{/secondaryParam}}{{/pathParams}} path = "{{path}}"{{#pathParams}}
{{^pathParams}}let{{/pathParams}}{{#pathParams}}{{^secondaryParam}}var{{/secondaryParam}}{{/pathParams}} path = "{{{path}}}"{{#pathParams}}
path = path.replacingOccurrences(of: "{{=<% %>=}}{<%baseName%>}<%={{ }}=%>", with: "\({{paramName}}{{#isEnum}}{{#isContainer}}{{{dataType}}}{{/isContainer}}{{^isContainer}}.rawValue{{/isContainer}}{{/isEnum}})", options: .literal, range: nil){{/pathParams}}
let URLString = {{projectName}}API.basePath + path
{{#bodyParam}}

View File

@@ -48,7 +48,7 @@ bool {{nickname}}Async(char * accessToken,
static std::string getBasePath()
{
return "{{basePath}}";
return "{{{basePath}}}";
}
};

View File

@@ -10,7 +10,7 @@ import * as models from '../model/models';
*/
{{/description}}
export class {{classname}} {
protected basePath = '{{basePath}}';
protected basePath = '{{{basePath}}}';
public defaultHeaders : any = {};
static $inject: string[] = ['$http', '$httpParamSerializer', 'basePath'];
@@ -28,7 +28,7 @@ export class {{classname}} {
{{#allParams}}* @param {{paramName}} {{description}}
{{/allParams}}*/
public {{nickname}} ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}extraHttpRequestParams?: any ) : ng.IHttpPromise<{{#returnType}}{{{returnType}}}{{/returnType}}{{^returnType}}{}{{/returnType}}> {
const localVarPath = this.basePath + '{{path}}'{{#pathParams}}
const localVarPath = this.basePath + '{{{path}}}'{{#pathParams}}
.replace('{' + '{{baseName}}' + '}', String({{paramName}})){{/pathParams}};
let queryParameters: any = {};
@@ -82,4 +82,4 @@ export class {{classname}} {
}
{{/operation}}
}
{{/operations}}
{{/operations}}

View File

@@ -99,7 +99,7 @@ export class {{classname}} {
{{#allParams}}* @param {{paramName}} {{description}}
{{/allParams}}*/
public {{nickname}}WithHttpInfo({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}extraHttpRequestParams?: any): Observable<Response> {
const path = this.basePath + '{{path}}'{{#pathParams}}
const path = this.basePath + '{{{path}}}'{{#pathParams}}
.replace('${' + '{{baseName}}' + '}', String({{paramName}})){{/pathParams}};
let queryParameters = new URLSearchParams();

View File

@@ -1,6 +1,6 @@
import * as $ from 'jquery';
let defaultBasePath = '{{basePath}}';
let defaultBasePath = '{{{basePath}}}';
// ===============================================
// This file is autogenerated - Please do not edit
@@ -183,7 +183,7 @@ export class {{classname}} {
{{#allParams}}* @param {{paramName}} {{description}}
{{/allParams}}*/
public {{nickname}} ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) : JQueryPromise<{ response: JQueryXHR; {{#returnType}}body: {{{returnType}}}; {{/returnType}}{{^returnType}}body?: any; {{/returnType}} }> {
let localVarPath = this.basePath + '{{path}}'{{#pathParams}}
let localVarPath = this.basePath + '{{{path}}}'{{#pathParams}}
.replace('{' + '{{baseName}}' + '}', String({{paramName}})){{/pathParams}};
let queryParameters: any = {};
let headerParams: any = this.extendObj({}, this.defaultHeaders);

View File

@@ -5,7 +5,7 @@ import http = require('http');
import Promise = require('bluebird');
{{/supportsES6}}
let defaultBasePath = '{{basePath}}';
let defaultBasePath = '{{{basePath}}}';
// ===============================================
// This file is autogenerated - Please do not edit
@@ -353,7 +353,7 @@ export class {{classname}} {
{{#allParams}}* @param {{paramName}} {{description}}
{{/allParams}}*/
public {{nickname}} ({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) : Promise<{ response: http.{{#supportsES6}}IncomingMessage{{/supportsES6}}{{^supportsES6}}ClientResponse{{/supportsES6}}; {{#returnType}}body: {{{returnType}}}; {{/returnType}}{{^returnType}}body?: any; {{/returnType}} }> {
const localVarPath = this.basePath + '{{path}}'{{#pathParams}}
const localVarPath = this.basePath + '{{{path}}}'{{#pathParams}}
.replace('{' + '{{baseName}}' + '}', String({{paramName}})){{/pathParams}};
let queryParameters: any = {};
let headerParams: any = (<any>Object).assign({}, this.defaultHeaders);

View File

@@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
VisualStudioVersion = 12.0.0.0
MinimumVisualStudioVersion = 10.0.0.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{8FBEE4BD-85D4-4A5A-B723-C98D2EDB387A}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{321C8C3F-0156-40C1-AE42-D59761FB9B6C}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger.Test", "src\IO.Swagger.Test\IO.Swagger.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
EndProject
@@ -12,10 +12,10 @@ Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8FBEE4BD-85D4-4A5A-B723-C98D2EDB387A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8FBEE4BD-85D4-4A5A-B723-C98D2EDB387A}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8FBEE4BD-85D4-4A5A-B723-C98D2EDB387A}.Release|Any CPU.ActiveCfg = Release|Any CPU
{8FBEE4BD-85D4-4A5A-B723-C98D2EDB387A}.Release|Any CPU.Build.0 = Release|Any CPU
{321C8C3F-0156-40C1-AE42-D59761FB9B6C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{321C8C3F-0156-40C1-AE42-D59761FB9B6C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{321C8C3F-0156-40C1-AE42-D59761FB9B6C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{321C8C3F-0156-40C1-AE42-D59761FB9B6C}.Release|Any CPU.Build.0 = Release|Any CPU
{19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.Build.0 = Debug|Any CPU
{19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.ActiveCfg = Release|Any CPU

View File

@@ -38,7 +38,6 @@ using IO.Swagger.Api;
using IO.Swagger.Client;
using IO.Swagger.Model;
```
<a name="packaging"></a>
## Packaging

View File

@@ -9,9 +9,10 @@ Contact: apiteam@swagger.io
-->
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{8FBEE4BD-85D4-4A5A-B723-C98D2EDB387A}</ProjectGuid>
<ProjectGuid>{321C8C3F-0156-40C1-AE42-D59761FB9B6C}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>IO.Swagger</RootNamespace>

View File

@@ -2,7 +2,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 2012
VisualStudioVersion = 12.0.0.0
MinimumVisualStudioVersion = 10.0.0.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{415C09BC-2D6E-4641-960C-8E382CECF46C}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{5CD900DE-8266-412F-A758-28E1F9C623D5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger.Test", "src\IO.Swagger.Test\IO.Swagger.Test.csproj", "{19F1DEBC-DE5E-4517-8062-F000CD499087}"
EndProject
@@ -12,10 +12,10 @@ Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{415C09BC-2D6E-4641-960C-8E382CECF46C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{415C09BC-2D6E-4641-960C-8E382CECF46C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{415C09BC-2D6E-4641-960C-8E382CECF46C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{415C09BC-2D6E-4641-960C-8E382CECF46C}.Release|Any CPU.Build.0 = Release|Any CPU
{5CD900DE-8266-412F-A758-28E1F9C623D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5CD900DE-8266-412F-A758-28E1F9C623D5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5CD900DE-8266-412F-A758-28E1F9C623D5}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5CD900DE-8266-412F-A758-28E1F9C623D5}.Release|Any CPU.Build.0 = Release|Any CPU
{19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{19F1DEBC-DE5E-4517-8062-F000CD499087}.Debug|Any CPU.Build.0 = Debug|Any CPU
{19F1DEBC-DE5E-4517-8062-F000CD499087}.Release|Any CPU.ActiveCfg = Release|Any CPU

View File

@@ -38,7 +38,6 @@ using IO.Swagger.Api;
using IO.Swagger.Client;
using IO.Swagger.Model;
```
<a name="packaging"></a>
## Packaging

View File

@@ -74,7 +74,7 @@ Contact: apiteam@swagger.io
<Import Project="$(MsBuildToolsPath)\Microsoft.CSharp.targets" />
<ItemGroup>
<ProjectReference Include="..\IO.Swagger\IO.Swagger.csproj">
<Project>{415C09BC-2D6E-4641-960C-8E382CECF46C}</Project>
<Project>{5CD900DE-8266-412F-A758-28E1F9C623D5}</Project>
<Name>IO.Swagger</Name>
</ProjectReference>
</ItemGroup>

View File

@@ -9,9 +9,10 @@ Contact: apiteam@swagger.io
-->
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{415C09BC-2D6E-4641-960C-8E382CECF46C}</ProjectGuid>
<ProjectGuid>{5CD900DE-8266-412F-A758-28E1F9C623D5}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>IO.Swagger</RootNamespace>

View File

@@ -204,7 +204,7 @@ namespace IO.Swagger.Model
}
}
public IEnumerable<ValidationResult> Validate(ValidationContext validationContext)
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
{
yield break;
}

View File

@@ -108,11 +108,11 @@ paths:
type: "array"
items:
type: "string"
default: "available"
enum:
- "available"
- "pending"
- "sold"
default: "available"
collectionFormat: "csv"
responses:
200:

View File

@@ -9,12 +9,12 @@
<java.version>1.7</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<springfox-version>2.5.0</springfox-version>
<springfox-version>2.6.1</springfox-version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<version>1.4.5.RELEASE</version>
</parent>
<build>
<sourceDirectory>src/main/java</sourceDirectory>

View File

@@ -48,7 +48,7 @@ public interface FakeApi {
produces = { "application/xml; charset=utf-8", "application/json; charset=utf-8" },
consumes = { "application/xml; charset=utf-8", "application/json; charset=utf-8" },
method = RequestMethod.POST)
ResponseEntity<Void> testEndpointParameters(@ApiParam(value = "None", required=true ) @RequestPart(value="number", required=true) BigDecimal number,@ApiParam(value = "None", required=true ) @RequestPart(value="double", required=true) Double _double,@ApiParam(value = "None", required=true ) @RequestPart(value="pattern_without_delimiter", required=true) String patternWithoutDelimiter,@ApiParam(value = "None", required=true ) @RequestPart(value="byte", required=true) byte[] _byte,@ApiParam(value = "None" ) @RequestPart(value="integer", required=false) Integer integer,@ApiParam(value = "None" ) @RequestPart(value="int32", required=false) Integer int32,@ApiParam(value = "None" ) @RequestPart(value="int64", required=false) Long int64,@ApiParam(value = "None" ) @RequestPart(value="float", required=false) Float _float,@ApiParam(value = "None" ) @RequestPart(value="string", required=false) String string,@ApiParam(value = "None" ) @RequestPart(value="binary", required=false) byte[] binary,@ApiParam(value = "None" ) @RequestPart(value="date", required=false) LocalDate date,@ApiParam(value = "None" ) @RequestPart(value="dateTime", required=false) OffsetDateTime dateTime,@ApiParam(value = "None" ) @RequestPart(value="password", required=false) String password,@ApiParam(value = "None" ) @RequestPart(value="callback", required=false) String paramCallback);
ResponseEntity<Void> testEndpointParameters(@ApiParam(value = "None", required=true ) @RequestPart(value="number", required=true) BigDecimal number,@ApiParam(value = "None", required=true ) @RequestPart(value="double", required=true) Double _double,@ApiParam(value = "None", required=true ) @RequestPart(value="pattern_without_delimiter", required=true) String patternWithoutDelimiter,@ApiParam(value = "None", required=true ) @RequestPart(value="byte", required=true) byte[] _byte,@ApiParam(value = "None" ) @RequestPart(value="integer", required=false) Integer integer,@ApiParam(value = "None" ) @RequestPart(value="int32", required=false) Integer int32,@ApiParam(value = "None" ) @RequestPart(value="int64", required=false) Long int64,@ApiParam(value = "None" ) @RequestPart(value="float", required=false) Float _float,@ApiParam(value = "None" ) @RequestPart(value="string", required=false) String string,@ApiParam(value = "None" ) @RequestPart(value="binary", required=false) byte[] binary,@ApiParam(value = "None" ) @RequestPart(value="date", required=false) LocalDate date,@ApiParam(value = "None" ) @RequestPart(value="dateTime", required=false) DateTime dateTime,@ApiParam(value = "None" ) @RequestPart(value="password", required=false) String password,@ApiParam(value = "None" ) @RequestPart(value="callback", required=false) String paramCallback);
@ApiOperation(value = "To test enum parameters", notes = "To test enum parameters", response = Void.class, tags={ "fake", })

View File

@@ -9,12 +9,12 @@
<java.version>1.7</java.version>
<maven.compiler.source>${java.version}</maven.compiler.source>
<maven.compiler.target>${java.version}</maven.compiler.target>
<springfox-version>2.5.0</springfox-version>
<springfox-version>2.6.1</springfox-version>
</properties>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<version>1.4.5.RELEASE</version>
</parent>
<build>
<sourceDirectory>src/main/java</sourceDirectory>