diff --git a/modules/swagger-codegen/src/main/resources/android-java/api.mustache b/modules/swagger-codegen/src/main/resources/android-java/api.mustache index 1eab419d31ad..83a43b428531 100644 --- a/modules/swagger-codegen/src/main/resources/android-java/api.mustache +++ b/modules/swagger-codegen/src/main/resources/android-java/api.mustache @@ -10,6 +10,9 @@ import java.util.*; {{#imports}}import {{import}}; {{/imports}} +import org.apache.http.HttpEntity; +import org.apache.http.entity.mime.MultipartEntityBuilder; + import java.util.Map; import java.util.HashMap; import java.io.File; @@ -55,19 +58,46 @@ public class {{classname}} { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - {{#queryParams}}if(!"null".equals(String.valueOf({{paramName}}))) - queryParams.put("{{baseName}}", String.valueOf({{paramName}})); + {{#queryParams}}if ({{paramName}} != null) + queryParams.put("{{baseName}}", ApiInvoker.parameterToString({{paramName}})); {{/queryParams}} - {{#headerParams}}headerParams.put("{{baseName}}", {{paramName}}); + {{#headerParams}}headerParams.put("{{baseName}}", ApiInvoker.parameterToString({{paramName}})); {{/headerParams}} - String contentType = "application/json"; + String[] contentTypes = { + {{#consumes}}"{{mediaType}}"{{#hasMore}},{{/hasMore}}{{/consumes}} + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + {{#formParams}}{{#notFile}} + if ({{paramName}} != null) { + builder.addTextBody("{{baseName}}", ApiInvoker.parameterToString({{paramName}}), ApiInvoker.TEXT_PLAIN_UTF8); + } + {{/notFile}}{{#isFile}} + if ({{paramName}} != null) { + builder.addBinaryBody("{{baseName}}", {{paramName}}); + } + {{/isFile}}{{/formParams}} + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + {{#formParams}}{{#notFile}}formParams.put("{{baseName}}", ApiInvoker.parameterToString({{paramName}}));{{/notFile}} + {{/formParams}} + } try { - String response = apiInvoker.invokeAPI(basePath, path, "{{httpMethod}}", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "{{httpMethod}}", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return {{#returnType}}({{{returnType}}}) ApiInvoker.deserialize(response, "{{returnContainer}}", {{returnBaseType}}.class){{/returnType}}; } diff --git a/modules/swagger-codegen/src/main/resources/android-java/apiInvoker.mustache b/modules/swagger-codegen/src/main/resources/android-java/apiInvoker.mustache index 425c2e7e004c..8b31abd48abe 100644 --- a/modules/swagger-codegen/src/main/resources/android-java/apiInvoker.mustache +++ b/modules/swagger-codegen/src/main/resources/android-java/apiInvoker.mustache @@ -12,6 +12,7 @@ import org.apache.http.client.methods.*; import org.apache.http.conn.*; import org.apache.http.conn.scheme.*; import org.apache.http.conn.ssl.*; +import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.*; import org.apache.http.impl.conn.*; @@ -40,6 +41,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.TimeZone; import java.util.Random; import java.util.logging.Level; import java.util.logging.Logger; @@ -61,6 +63,61 @@ public class ApiInvoker { private ClientConnectionManager ignoreSSLConnectionManager; + /** Content type "text/plain" with UTF-8 encoding. */ + public static final ContentType TEXT_PLAIN_UTF8 = ContentType.create("text/plain", Consts.UTF_8); + + /** + * ISO 8601 date time format. + * @see https://en.wikipedia.org/wiki/ISO_8601 + */ + public static final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); + + /** + * ISO 8601 date format. + * @see https://en.wikipedia.org/wiki/ISO_8601 + */ + public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); + + static { + // Use UTC as the default time zone. + DATE_TIME_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); + DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); + } + + public static Date parseDateTime(String str) { + try { + return DATE_TIME_FORMAT.parse(str); + } catch (java.text.ParseException e) { + throw new RuntimeException(e); + } + } + + public static Date parseDate(String str) { + try { + return DATE_FORMAT.parse(str); + } catch (java.text.ParseException e) { + throw new RuntimeException(e); + } + } + + public static String formatDateTime(Date datetime) { + return DATE_TIME_FORMAT.format(datetime); + } + + public static String formatDate(Date date) { + return DATE_FORMAT.format(date); + } + + public static String parameterToString(Object param) { + if (param == null) { + return ""; + } else if (param instanceof Date) { + return formatDateTime((Date) param); + } else { + return String.valueOf(param); + } + } + public ApiInvoker() { initConnectionManager(); } @@ -91,7 +148,7 @@ public class ApiInvoker { else if(String.class.equals(cls)) { if(json != null && json.startsWith("\"") && json.endsWith("\"") && json.length() > 1) return json.substring(1, json.length() - 2); - else + else return json; } else { @@ -105,9 +162,9 @@ public class ApiInvoker { public static String serialize(Object obj) throws ApiException { try { - if (obj != null) + if (obj != null) return JsonUtil.getJsonMapper().writeValueAsString(obj); - else + else return null; } catch (Exception e) { @@ -115,7 +172,7 @@ public class ApiInvoker { } } - public String invokeAPI(String host, String path, String method, Map queryParams, Object body, Map headerParams, String contentType) throws ApiException { + public String invokeAPI(String host, String path, String method, Map queryParams, Object body, Map headerParams, Map formParams, String contentType) throws ApiException { HttpClient client = getClient(host); StringBuilder b = new StringBuilder(); @@ -136,7 +193,7 @@ public class ApiInvoker { for(String key : headerParams.keySet()) { headers.put(key, headerParams.get(key)); } - + for(String key : defaultHeaderMap.keySet()) { if(!headerParams.containsKey(key)) { headers.put(key, defaultHeaderMap.get(key)); @@ -144,9 +201,34 @@ public class ApiInvoker { } headers.put("Accept", "application/json"); + // URL encoded string from form parameters + String formParamStr = null; + + // for form data + if ("application/x-www-form-urlencoded".equals(contentType)) { + StringBuilder formParamBuilder = new StringBuilder(); + + // encode the form params + for (String key : formParams.keySet()) { + String value = formParams.get(key); + if (value != null && !"".equals(value.trim())) { + if (formParamBuilder.length() > 0) { + formParamBuilder.append("&"); + } + try { + formParamBuilder.append(URLEncoder.encode(key, "utf8")).append("=").append(URLEncoder.encode(value, "utf8")); + } + catch (Exception e) { + // move on to next + } + } + } + formParamStr = formParamBuilder.toString(); + } + HttpResponse response = null; - try{ - if("GET".equals(method)) { + try { + if ("GET".equals(method)) { HttpGet get = new HttpGet(url); get.addHeader("Accept", "application/json"); for(String key : headers.keySet()) { @@ -156,10 +238,17 @@ public class ApiInvoker { } else if ("POST".equals(method)) { HttpPost post = new HttpPost(url); - - if (body != null) { + if (formParamStr != null) { post.setHeader("Content-Type", contentType); - post.setEntity(new StringEntity(serialize(body), "UTF-8")); + post.setEntity(new StringEntity(formParamStr, "UTF-8")); + } else if (body != null) { + if (body instanceof HttpEntity) { + // this is for file uploading + post.setEntity((HttpEntity) body); + } else { + post.setHeader("Content-Type", contentType); + post.setEntity(new StringEntity(serialize(body), "UTF-8")); + } } for(String key : headers.keySet()) { post.setHeader(key, headers.get(key)); @@ -168,7 +257,10 @@ public class ApiInvoker { } else if ("PUT".equals(method)) { HttpPut put = new HttpPut(url); - if(body != null) { + if (formParamStr != null) { + put.setHeader("Content-Type", contentType); + put.setEntity(new StringEntity(formParamStr, "UTF-8")); + } else if (body != null) { put.setHeader("Content-Type", contentType); put.setEntity(new StringEntity(serialize(body), "UTF-8")); } @@ -186,8 +278,10 @@ public class ApiInvoker { } else if ("PATCH".equals(method)) { HttpPatch patch = new HttpPatch(url); - - if (body != null) { + if (formParamStr != null) { + patch.setHeader("Content-Type", contentType); + patch.setEntity(new StringEntity(formParamStr, "UTF-8")); + } else if (body != null) { patch.setHeader("Content-Type", contentType); patch.setEntity(new StringEntity(serialize(body), "UTF-8")); } @@ -199,7 +293,7 @@ public class ApiInvoker { int code = response.getStatusLine().getStatusCode(); String responseString = null; - if(code == 204) + if(code == 204) responseString = ""; else if(code >= 200 && code < 300) { if(response.getEntity() != null) { diff --git a/modules/swagger-codegen/src/main/resources/android-java/pom.mustache b/modules/swagger-codegen/src/main/resources/android-java/pom.mustache index 5f48aadfa128..8a01631edb06 100644 --- a/modules/swagger-codegen/src/main/resources/android-java/pom.mustache +++ b/modules/swagger-codegen/src/main/resources/android-java/pom.mustache @@ -136,6 +136,12 @@ ${httpclient-version} compile + + org.apache.httpcomponents + httpmime + ${httpclient-version} + compile + @@ -157,6 +163,6 @@ 4.8.1 1.0.0 4.8.1 - 4.0 + 4.3.6 diff --git a/samples/client/petstore/android-java/pom.xml b/samples/client/petstore/android-java/pom.xml index ef2be59b188b..003a4450b5bb 100644 --- a/samples/client/petstore/android-java/pom.xml +++ b/samples/client/petstore/android-java/pom.xml @@ -136,6 +136,12 @@ ${httpclient-version} compile + + org.apache.httpcomponents + httpmime + ${httpclient-version} + compile + @@ -157,6 +163,6 @@ 4.8.1 1.0.0 4.8.1 - 4.0 + 4.3.6 diff --git a/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java b/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java index 6306e0734a96..9eb217fe7369 100644 --- a/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java +++ b/samples/client/petstore/android-java/src/main/java/io/swagger/client/ApiInvoker.java @@ -12,6 +12,7 @@ import org.apache.http.client.methods.*; import org.apache.http.conn.*; import org.apache.http.conn.scheme.*; import org.apache.http.conn.ssl.*; +import org.apache.http.entity.ContentType; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.*; import org.apache.http.impl.conn.*; @@ -40,6 +41,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; +import java.util.TimeZone; import java.util.Random; import java.util.logging.Level; import java.util.logging.Logger; @@ -61,6 +63,61 @@ public class ApiInvoker { private ClientConnectionManager ignoreSSLConnectionManager; + /** Content type "text/plain" with UTF-8 encoding. */ + public static final ContentType TEXT_PLAIN_UTF8 = ContentType.create("text/plain", Consts.UTF_8); + + /** + * ISO 8601 date time format. + * @see https://en.wikipedia.org/wiki/ISO_8601 + */ + public static final SimpleDateFormat DATE_TIME_FORMAT = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssXXX"); + + /** + * ISO 8601 date format. + * @see https://en.wikipedia.org/wiki/ISO_8601 + */ + public static final SimpleDateFormat DATE_FORMAT = new SimpleDateFormat("yyyy-MM-dd"); + + static { + // Use UTC as the default time zone. + DATE_TIME_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); + DATE_FORMAT.setTimeZone(TimeZone.getTimeZone("UTC")); + } + + public static Date parseDateTime(String str) { + try { + return DATE_TIME_FORMAT.parse(str); + } catch (java.text.ParseException e) { + throw new RuntimeException(e); + } + } + + public static Date parseDate(String str) { + try { + return DATE_FORMAT.parse(str); + } catch (java.text.ParseException e) { + throw new RuntimeException(e); + } + } + + public static String formatDateTime(Date datetime) { + return DATE_TIME_FORMAT.format(datetime); + } + + public static String formatDate(Date date) { + return DATE_FORMAT.format(date); + } + + public static String parameterToString(Object param) { + if (param == null) { + return ""; + } else if (param instanceof Date) { + return formatDateTime((Date) param); + } else { + return String.valueOf(param); + } + } + public ApiInvoker() { initConnectionManager(); } @@ -91,7 +148,7 @@ public class ApiInvoker { else if(String.class.equals(cls)) { if(json != null && json.startsWith("\"") && json.endsWith("\"") && json.length() > 1) return json.substring(1, json.length() - 2); - else + else return json; } else { @@ -105,9 +162,9 @@ public class ApiInvoker { public static String serialize(Object obj) throws ApiException { try { - if (obj != null) + if (obj != null) return JsonUtil.getJsonMapper().writeValueAsString(obj); - else + else return null; } catch (Exception e) { @@ -115,7 +172,7 @@ public class ApiInvoker { } } - public String invokeAPI(String host, String path, String method, Map queryParams, Object body, Map headerParams, String contentType) throws ApiException { + public String invokeAPI(String host, String path, String method, Map queryParams, Object body, Map headerParams, Map formParams, String contentType) throws ApiException { HttpClient client = getClient(host); StringBuilder b = new StringBuilder(); @@ -136,7 +193,7 @@ public class ApiInvoker { for(String key : headerParams.keySet()) { headers.put(key, headerParams.get(key)); } - + for(String key : defaultHeaderMap.keySet()) { if(!headerParams.containsKey(key)) { headers.put(key, defaultHeaderMap.get(key)); @@ -144,9 +201,34 @@ public class ApiInvoker { } headers.put("Accept", "application/json"); + // URL encoded string from form parameters + String formParamStr = null; + + // for form data + if ("application/x-www-form-urlencoded".equals(contentType)) { + StringBuilder formParamBuilder = new StringBuilder(); + + // encode the form params + for (String key : formParams.keySet()) { + String value = formParams.get(key); + if (value != null && !"".equals(value.trim())) { + if (formParamBuilder.length() > 0) { + formParamBuilder.append("&"); + } + try { + formParamBuilder.append(URLEncoder.encode(key, "utf8")).append("=").append(URLEncoder.encode(value, "utf8")); + } + catch (Exception e) { + // move on to next + } + } + } + formParamStr = formParamBuilder.toString(); + } + HttpResponse response = null; - try{ - if("GET".equals(method)) { + try { + if ("GET".equals(method)) { HttpGet get = new HttpGet(url); get.addHeader("Accept", "application/json"); for(String key : headers.keySet()) { @@ -156,10 +238,17 @@ public class ApiInvoker { } else if ("POST".equals(method)) { HttpPost post = new HttpPost(url); - - if (body != null) { + if (formParamStr != null) { post.setHeader("Content-Type", contentType); - post.setEntity(new StringEntity(serialize(body), "UTF-8")); + post.setEntity(new StringEntity(formParamStr, "UTF-8")); + } else if (body != null) { + if (body instanceof HttpEntity) { + // this is for file uploading + post.setEntity((HttpEntity) body); + } else { + post.setHeader("Content-Type", contentType); + post.setEntity(new StringEntity(serialize(body), "UTF-8")); + } } for(String key : headers.keySet()) { post.setHeader(key, headers.get(key)); @@ -168,7 +257,10 @@ public class ApiInvoker { } else if ("PUT".equals(method)) { HttpPut put = new HttpPut(url); - if(body != null) { + if (formParamStr != null) { + put.setHeader("Content-Type", contentType); + put.setEntity(new StringEntity(formParamStr, "UTF-8")); + } else if (body != null) { put.setHeader("Content-Type", contentType); put.setEntity(new StringEntity(serialize(body), "UTF-8")); } @@ -186,8 +278,10 @@ public class ApiInvoker { } else if ("PATCH".equals(method)) { HttpPatch patch = new HttpPatch(url); - - if (body != null) { + if (formParamStr != null) { + patch.setHeader("Content-Type", contentType); + patch.setEntity(new StringEntity(formParamStr, "UTF-8")); + } else if (body != null) { patch.setHeader("Content-Type", contentType); patch.setEntity(new StringEntity(serialize(body), "UTF-8")); } @@ -199,7 +293,7 @@ public class ApiInvoker { int code = response.getStatusLine().getStatusCode(); String responseString = null; - if(code == 204) + if(code == 204) responseString = ""; else if(code >= 200 && code < 300) { if(response.getEntity() != null) { diff --git a/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/PetApi.java b/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/PetApi.java index 7b58b8e5e024..41e10687ce7d 100644 --- a/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/PetApi.java +++ b/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/PetApi.java @@ -10,6 +10,9 @@ import java.util.*; import io.swagger.client.model.Pet; import java.io.File; +import org.apache.http.HttpEntity; +import org.apache.http.entity.mime.MultipartEntityBuilder; + import java.util.Map; import java.util.HashMap; import java.io.File; @@ -46,16 +49,34 @@ public class PetApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + "application/json","application/xml" + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } @@ -83,16 +104,34 @@ public class PetApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + "application/json","application/xml" + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } @@ -120,18 +159,36 @@ public class PetApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - if(!"null".equals(String.valueOf(status))) - queryParams.put("status", String.valueOf(status)); + if (status != null) + queryParams.put("status", ApiInvoker.parameterToString(status)); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return (List) ApiInvoker.deserialize(response, "array", Pet.class); } @@ -159,18 +216,36 @@ public class PetApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - if(!"null".equals(String.valueOf(tags))) - queryParams.put("tags", String.valueOf(tags)); + if (tags != null) + queryParams.put("tags", ApiInvoker.parameterToString(tags)); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return (List) ApiInvoker.deserialize(response, "array", Pet.class); } @@ -198,16 +273,34 @@ public class PetApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return (Pet) ApiInvoker.deserialize(response, "", Pet.class); } @@ -235,16 +328,44 @@ public class PetApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + "application/x-www-form-urlencoded" + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + if (name != null) { + builder.addTextBody("name", ApiInvoker.parameterToString(name), ApiInvoker.TEXT_PLAIN_UTF8); + } + + if (status != null) { + builder.addTextBody("status", ApiInvoker.parameterToString(status), ApiInvoker.TEXT_PLAIN_UTF8); + } + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + formParams.put("name", ApiInvoker.parameterToString(name)); + formParams.put("status", ApiInvoker.parameterToString(status)); + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } @@ -272,17 +393,35 @@ public class PetApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - headerParams.put("api_key", api_key); + headerParams.put("api_key", ApiInvoker.parameterToString(api_key)); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } @@ -310,16 +449,44 @@ public class PetApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + "multipart/form-data" + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + if (additionalMetadata != null) { + builder.addTextBody("additionalMetadata", ApiInvoker.parameterToString(additionalMetadata), ApiInvoker.TEXT_PLAIN_UTF8); + } + + if (file != null) { + builder.addBinaryBody("file", file); + } + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + formParams.put("additionalMetadata", ApiInvoker.parameterToString(additionalMetadata)); + + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } diff --git a/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/StoreApi.java b/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/StoreApi.java index bdbce53ba3f6..b68af58ce9da 100644 --- a/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/StoreApi.java +++ b/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/StoreApi.java @@ -10,6 +10,9 @@ import java.util.*; import java.util.Map; import io.swagger.client.model.Order; +import org.apache.http.HttpEntity; +import org.apache.http.entity.mime.MultipartEntityBuilder; + import java.util.Map; import java.util.HashMap; import java.io.File; @@ -46,16 +49,34 @@ public class StoreApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return (Map) ApiInvoker.deserialize(response, "map", Map.class); } @@ -83,16 +104,34 @@ public class StoreApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return (Order) ApiInvoker.deserialize(response, "", Order.class); } @@ -120,16 +159,34 @@ public class StoreApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return (Order) ApiInvoker.deserialize(response, "", Order.class); } @@ -157,16 +214,34 @@ public class StoreApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } diff --git a/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/UserApi.java b/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/UserApi.java index 0328a002bf24..aea620104a99 100644 --- a/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/UserApi.java +++ b/samples/client/petstore/android-java/src/main/java/io/swagger/client/api/UserApi.java @@ -10,6 +10,9 @@ import java.util.*; import io.swagger.client.model.User; import java.util.*; +import org.apache.http.HttpEntity; +import org.apache.http.entity.mime.MultipartEntityBuilder; + import java.util.Map; import java.util.HashMap; import java.io.File; @@ -46,16 +49,34 @@ public class UserApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } @@ -83,16 +104,34 @@ public class UserApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } @@ -120,16 +159,34 @@ public class UserApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "POST", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } @@ -157,20 +214,38 @@ public class UserApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - if(!"null".equals(String.valueOf(username))) - queryParams.put("username", String.valueOf(username)); - if(!"null".equals(String.valueOf(password))) - queryParams.put("password", String.valueOf(password)); + if (username != null) + queryParams.put("username", ApiInvoker.parameterToString(username)); + if (password != null) + queryParams.put("password", ApiInvoker.parameterToString(password)); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return (String) ApiInvoker.deserialize(response, "", String.class); } @@ -198,16 +273,34 @@ public class UserApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } @@ -235,16 +328,34 @@ public class UserApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "GET", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return (User) ApiInvoker.deserialize(response, "", User.class); } @@ -272,16 +383,34 @@ public class UserApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "PUT", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; } @@ -309,16 +438,34 @@ public class UserApi { // query params Map queryParams = new HashMap(); + // header params Map headerParams = new HashMap(); + // form params + Map formParams = new HashMap(); - String contentType = "application/json"; + String[] contentTypes = { + + }; + String contentType = contentTypes.length > 0 ? contentTypes[0] : "application/json"; + + if (contentType.startsWith("multipart/form-data")) { + // file uploading + MultipartEntityBuilder builder = MultipartEntityBuilder.create(); + + + HttpEntity httpEntity = builder.build(); + postBody = httpEntity; + } else { + // normal form params + + } try { - String response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, postBody, headerParams, contentType); + String response = apiInvoker.invokeAPI(basePath, path, "DELETE", queryParams, postBody, headerParams, formParams, contentType); if(response != null){ return ; }