From 3ece7f2f52e1594f0991fcc1dc334e9199a68699 Mon Sep 17 00:00:00 2001 From: Benjamin Gill Date: Thu, 30 Nov 2017 15:19:50 +0000 Subject: [PATCH 1/5] Move errant file to 'rust-server' Rust2 was the old name --- ...st2OptionsProvider.java => RustServerOptionsProvider.java} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename modules/swagger-codegen/src/test/java/io/swagger/codegen/options/{Rust2OptionsProvider.java => RustServerOptionsProvider.java} (77%) diff --git a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/Rust2OptionsProvider.java b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/RustServerOptionsProvider.java similarity index 77% rename from modules/swagger-codegen/src/test/java/io/swagger/codegen/options/Rust2OptionsProvider.java rename to modules/swagger-codegen/src/test/java/io/swagger/codegen/options/RustServerOptionsProvider.java index 68c0d94088d..a78cde26057 100644 --- a/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/Rust2OptionsProvider.java +++ b/modules/swagger-codegen/src/test/java/io/swagger/codegen/options/RustServerOptionsProvider.java @@ -4,10 +4,10 @@ import java.util.Map; -public class Rust2OptionsProvider implements OptionsProvider { +public class RustServerOptionsProvider implements OptionsProvider { @Override public String getLanguage() { - return "rust2"; + return "rust-server"; } @Override From 07a6b8ff9a4a9918d8b4caf62dfa0de9967928b7 Mon Sep 17 00:00:00 2001 From: Benjamin Gill Date: Thu, 30 Nov 2017 15:20:23 +0000 Subject: [PATCH 2/5] Add license and description to Cargo.toml For rust-server, getting them from the swagger --- .../codegen/languages/RustServerCodegen.java | 7 +++ .../main/resources/rust-server/Cargo.mustache | 6 ++ .../server/petstore/rust-server/Cargo.toml | 2 + samples/server/petstore/rust-server/README.md | 2 +- .../petstore/rust-server/api/swagger.yaml | 58 +++++++++---------- .../petstore/rust-server/examples/client.rs | 2 +- .../rust-server/examples/server_lib/mod.rs | 2 +- .../server/petstore/rust-server/src/server.rs | 4 +- 8 files changed, 49 insertions(+), 34 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java index 020b78f2dd8..887d1e28b9f 100755 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java @@ -150,6 +150,7 @@ public RustServerCodegen() { additionalProperties.put("apiVersion", apiVersion); additionalProperties.put("serverPort", serverPort); additionalProperties.put("apiPath", apiPath); + additionalProperties.put(CodegenConstants.LICENSE_NAME, licenseName); /* * Supporting Files. You can write single files for the generator with the @@ -257,6 +258,12 @@ public void preprocessSwagger(Swagger swagger) { versionComponents.add("0"); } info.setVersion(StringUtils.join(versionComponents, ".")); + + if (info.getLicense() != null) { + License license = info.getLicense(); + licenseName = license.getName(); + additionalProperties.put(CodegenConstants.LICENSE_NAME, licenseName); + } } @Override diff --git a/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache b/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache index 8cab22ff513..d84d6484fdd 100644 --- a/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache +++ b/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache @@ -2,6 +2,12 @@ name = "{{packageName}}" version = "{{appVersion}}" authors = [{{#infoEmail}}"{{infoEmail}}"{{/infoEmail}}] +{{#appDescription}} +description = "{{{appDescription}}}" +{{/appDescription}} +{{#licenseName}} +license = "{{{licenseName}}}" +{{/licenseName}} [features] default = ["client", "server"] diff --git a/samples/server/petstore/rust-server/Cargo.toml b/samples/server/petstore/rust-server/Cargo.toml index da42d20714b..7117b80e592 100644 --- a/samples/server/petstore/rust-server/Cargo.toml +++ b/samples/server/petstore/rust-server/Cargo.toml @@ -2,6 +2,8 @@ name = "petstore_api" version = "1.0.0" authors = ["apiteam@swagger.io"] +description = "This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\" +license = "Apache-2.0" [features] default = ["client", "server"] diff --git a/samples/server/petstore/rust-server/README.md b/samples/server/petstore/rust-server/README.md index 16cfa50d246..a660a9f9b38 100644 --- a/samples/server/petstore/rust-server/README.md +++ b/samples/server/petstore/rust-server/README.md @@ -13,7 +13,7 @@ To see how to make this your own, look here: [README](https://github.com/swagger-api/swagger-codegen/blob/master/README.md) - API version: 1.0.0 -- Build date: 2017-10-30T02:13:46.477Z +- Build date: 2017-11-30T15:18:45.444Z ## Examples diff --git a/samples/server/petstore/rust-server/api/swagger.yaml b/samples/server/petstore/rust-server/api/swagger.yaml index dd09ede7a54..d560546927d 100644 --- a/samples/server/petstore/rust-server/api/swagger.yaml +++ b/samples/server/petstore/rust-server/api/swagger.yaml @@ -139,11 +139,11 @@ paths: type: "array" items: type: "string" + default: "available" enum: - "available" - "pending" - "sold" - default: "available" collectionFormat: "csv" formatString: "{:?}" example: "&Vec::new()" @@ -893,10 +893,10 @@ paths: type: "array" items: type: "string" + default: "$" enum: - ">" - "$" - default: "$" formatString: "{:?}" example: "Some(&Vec::new())" - name: "enum_form_string" @@ -918,10 +918,10 @@ paths: type: "array" items: type: "string" + default: "$" enum: - ">" - "$" - default: "$" formatString: "{:?}" example: "Some(&Vec::new())" - name: "enum_header_string" @@ -943,10 +943,10 @@ paths: type: "array" items: type: "string" + default: "$" enum: - ">" - "$" - default: "$" formatString: "{:?}" example: "Some(&Vec::new())" - name: "enum_query_string" @@ -1047,7 +1047,7 @@ paths: maximum: 543.2 minimum: 32.1 formatString: "{}" - example: "3.4" + example: "8.14" - name: "float" in: "formData" description: "None" @@ -1089,8 +1089,8 @@ paths: required: true type: "string" format: "byte" - formatString: "\\\"{:?}\\\"" - example: "swagger::ByteArray(\"byte_example\".to_string().into_bytes())" + formatString: "{:?}" + example: "swagger::ByteArray(Vec::from(\"B\"))" - name: "binary" in: "formData" description: "None" @@ -1465,12 +1465,12 @@ definitions: type: "boolean" default: false example: - petId: 6 - quantity: 1 id: 0 - shipDate: "2000-01-23T04:56:07.000+00:00" + petId: 6 complete: false status: "placed" + quantity: 1 + shipDate: "2000-01-23T04:56:07.000+00:00" xml: name: "Order" upperCaseName: "ORDER" @@ -1483,8 +1483,8 @@ definitions: name: type: "string" example: - name: "name" id: 6 + name: "name" xml: name: "Category" upperCaseName: "CATEGORY" @@ -1512,14 +1512,14 @@ definitions: format: "int32" description: "User Status" example: - firstName: "firstName" + id: 0 lastName: "lastName" - password: "password" - userStatus: 6 phone: "phone" - id: 0 - email: "email" username: "username" + email: "email" + userStatus: 6 + firstName: "firstName" + password: "password" xml: name: "User" upperCaseName: "USER" @@ -1532,8 +1532,8 @@ definitions: name: type: "string" example: - name: "name" id: 1 + name: "name" xml: name: "Tag" upperCaseName: "TAG" @@ -1574,20 +1574,20 @@ definitions: - "pending" - "sold" example: - photoUrls: - - "photoUrls" - - "photoUrls" - name: "doggie" + tags: + - id: 1 + name: "name" + - id: 1 + name: "name" id: 0 category: - name: "name" id: 6 - tags: - - name: "name" - id: 1 - - name: "name" - id: 1 + name: "name" status: "available" + name: "doggie" + photoUrls: + - "photoUrls" + - "photoUrls" xml: name: "Pet" upperCaseName: "PET" @@ -1602,9 +1602,9 @@ definitions: message: type: "string" example: + message: "message" code: 0 type: "type" - message: "message" upperCaseName: "APIRESPONSE" $special[model.name]: properties: @@ -1957,8 +1957,8 @@ definitions: my_boolean: $ref: "#/definitions/OuterBoolean" example: - my_string: {} my_number: {} + my_string: {} my_boolean: {} upperCaseName: "OUTERCOMPOSITE" OuterNumber: diff --git a/samples/server/petstore/rust-server/examples/client.rs b/samples/server/petstore/rust-server/examples/client.rs index 42a24e44241..dde1265b213 100644 --- a/samples/server/petstore/rust-server/examples/client.rs +++ b/samples/server/petstore/rust-server/examples/client.rs @@ -129,7 +129,7 @@ fn main() { // }, Some("TestEndpointParameters") => { - let result = client.test_endpoint_parameters(3.4, 1.2, "pattern_without_delimiter_example".to_string(), swagger::ByteArray("byte_example".to_string().into_bytes()), Some(56), Some(56), Some(789), Some(3.4), Some("string_example".to_string()), Some(swagger::ByteArray(Vec::from("B"))), None, None, Some("password_example".to_string()), Some("callback_example".to_string())).wait(); + let result = client.test_endpoint_parameters(8.14, 1.2, "pattern_without_delimiter_example".to_string(), swagger::ByteArray(Vec::from("B")), Some(56), Some(56), Some(789), Some(3.4), Some("string_example".to_string()), Some(swagger::ByteArray(Vec::from("B"))), None, None, Some("password_example".to_string()), Some("callback_example".to_string())).wait(); println!("{:?} (X-Span-ID: {:?})", result, client.context().x_span_id.clone().unwrap_or(String::from(""))); }, diff --git a/samples/server/petstore/rust-server/examples/server_lib/mod.rs b/samples/server/petstore/rust-server/examples/server_lib/mod.rs index 6427d552390..bd4616950e5 100644 --- a/samples/server/petstore/rust-server/examples/server_lib/mod.rs +++ b/samples/server/petstore/rust-server/examples/server_lib/mod.rs @@ -95,7 +95,7 @@ impl Api for Server { /// Fake endpoint for testing various parameters 假端點 偽のエンドポイント 가짜 엔드 포인트 fn test_endpoint_parameters(&self, number: f64, double: f64, pattern_without_delimiter: String, byte: swagger::ByteArray, integer: Option, int32: Option, int64: Option, float: Option, string: Option, binary: Option, date: Option>, date_time: Option>, password: Option, callback: Option, context: &Context) -> Box + Send> { let context = context.clone(); - println!("test_endpoint_parameters({}, {}, \"{}\", \"{:?}\", {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", number, double, pattern_without_delimiter, byte, integer, int32, int64, float, string, binary, date, date_time, password, callback, context.x_span_id.unwrap_or(String::from("")).clone()); + println!("test_endpoint_parameters({}, {}, \"{}\", {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}, {:?}) - X-Span-ID: {:?}", number, double, pattern_without_delimiter, byte, integer, int32, int64, float, string, binary, date, date_time, password, callback, context.x_span_id.unwrap_or(String::from("")).clone()); Box::new(futures::failed("Generic failure".into())) } diff --git a/samples/server/petstore/rust-server/src/server.rs b/samples/server/petstore/rust-server/src/server.rs index db24dfa2263..2adfcb01b22 100644 --- a/samples/server/petstore/rust-server/src/server.rs +++ b/samples/server/petstore/rust-server/src/server.rs @@ -535,10 +535,10 @@ fn add_routes(router: &mut Router, api: T) where T: Api + Send + Sync + Clone // Form parameters - let param_number = 3.4; + let param_number = 8.14; let param_double = 1.2; let param_pattern_without_delimiter = "pattern_without_delimiter_example".to_string(); - let param_byte = swagger::ByteArray("byte_example".to_string().into_bytes()); + let param_byte = swagger::ByteArray(Vec::from("B")); let param_integer = Some(56); let param_int32 = Some(56); let param_int64 = Some(789); From 1fd812111ef4bc08fe29fbf4a3c7b18bdd91fc3b Mon Sep 17 00:00:00 2001 From: Benjamin Gill Date: Thu, 30 Nov 2017 16:21:40 +0000 Subject: [PATCH 3/5] Valid Java doesn't have uninitialised variables... --- .../io/swagger/codegen/languages/RustServerCodegen.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java index 887d1e28b9f..a07c4bd6878 100755 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java @@ -150,7 +150,6 @@ public RustServerCodegen() { additionalProperties.put("apiVersion", apiVersion); additionalProperties.put("serverPort", serverPort); additionalProperties.put("apiPath", apiPath); - additionalProperties.put(CodegenConstants.LICENSE_NAME, licenseName); /* * Supporting Files. You can write single files for the generator with the @@ -260,9 +259,8 @@ public void preprocessSwagger(Swagger swagger) { info.setVersion(StringUtils.join(versionComponents, ".")); if (info.getLicense() != null) { - License license = info.getLicense(); - licenseName = license.getName(); - additionalProperties.put(CodegenConstants.LICENSE_NAME, licenseName); + additionalProperties.put(CodegenConstants.LICENSE_NAME, + info.getLicense().getName()); } } From 7120451679677de54be921df5cb439cfcb46006b Mon Sep 17 00:00:00 2001 From: Benjamin Gill Date: Thu, 30 Nov 2017 18:23:42 +0000 Subject: [PATCH 4/5] Default license to "Unlicense" --- .../java/io/swagger/codegen/languages/RustServerCodegen.java | 3 +++ .../src/main/resources/rust-server/Cargo.mustache | 2 -- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java index a07c4bd6878..ef3c928a21b 100755 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java @@ -261,6 +261,9 @@ public void preprocessSwagger(Swagger swagger) { if (info.getLicense() != null) { additionalProperties.put(CodegenConstants.LICENSE_NAME, info.getLicense().getName()); + } else { + additionalProperties.put(CodegenConstants.LICENSE_NAME, + "Unlicense"); } } diff --git a/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache b/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache index d84d6484fdd..b63e1fdd7e9 100644 --- a/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache +++ b/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache @@ -5,9 +5,7 @@ authors = [{{#infoEmail}}"{{infoEmail}}"{{/infoEmail}}] {{#appDescription}} description = "{{{appDescription}}}" {{/appDescription}} -{{#licenseName}} license = "{{{licenseName}}}" -{{/licenseName}} [features] default = ["client", "server"] From e11e55586937ea0062b815e8e7c19bec9d3cc3f0 Mon Sep 17 00:00:00 2001 From: Benjamin Gill Date: Tue, 5 Dec 2017 10:48:19 +0000 Subject: [PATCH 5/5] Set license to "Unlicense" for generated crates --- .../io/swagger/codegen/languages/RustServerCodegen.java | 8 -------- .../src/main/resources/rust-server/Cargo.mustache | 2 +- samples/server/petstore/rust-server/Cargo.toml | 2 +- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java index ef3c928a21b..020b78f2dd8 100755 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/RustServerCodegen.java @@ -257,14 +257,6 @@ public void preprocessSwagger(Swagger swagger) { versionComponents.add("0"); } info.setVersion(StringUtils.join(versionComponents, ".")); - - if (info.getLicense() != null) { - additionalProperties.put(CodegenConstants.LICENSE_NAME, - info.getLicense().getName()); - } else { - additionalProperties.put(CodegenConstants.LICENSE_NAME, - "Unlicense"); - } } @Override diff --git a/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache b/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache index b63e1fdd7e9..344071baca7 100644 --- a/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache +++ b/modules/swagger-codegen/src/main/resources/rust-server/Cargo.mustache @@ -5,7 +5,7 @@ authors = [{{#infoEmail}}"{{infoEmail}}"{{/infoEmail}}] {{#appDescription}} description = "{{{appDescription}}}" {{/appDescription}} -license = "{{{licenseName}}}" +license = "Unlicense" [features] default = ["client", "server"] diff --git a/samples/server/petstore/rust-server/Cargo.toml b/samples/server/petstore/rust-server/Cargo.toml index 7117b80e592..6896d352e75 100644 --- a/samples/server/petstore/rust-server/Cargo.toml +++ b/samples/server/petstore/rust-server/Cargo.toml @@ -3,7 +3,7 @@ name = "petstore_api" version = "1.0.0" authors = ["apiteam@swagger.io"] description = "This spec is mainly for testing Petstore server and contains fake endpoints, models. Please do not use this for any other purpose. Special characters: \" \\" -license = "Apache-2.0" +license = "Unlicense" [features] default = ["client", "server"]