From b2fc25324fd05ff0a4982d0014bbb26892fa95d7 Mon Sep 17 00:00:00 2001 From: Simon Morris Date: Fri, 21 Oct 2016 08:58:29 -0700 Subject: [PATCH 1/3] fix NancyFX string parser parser needs to access the Value parameter to enable the direct cast at line 102 when handling string parameters --- .../src/main/resources/nancyfx/parameters.mustache | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/swagger-codegen/src/main/resources/nancyfx/parameters.mustache b/modules/swagger-codegen/src/main/resources/nancyfx/parameters.mustache index f9a55ba2b77..e55a82416ec 100644 --- a/modules/swagger-codegen/src/main/resources/nancyfx/parameters.mustache +++ b/modules/swagger-codegen/src/main/resources/nancyfx/parameters.mustache @@ -134,7 +134,7 @@ namespace {{packageName}}.{{packageContext}}.Utils private static IDictionary> CreateParsers() { var parsers = ImmutableDictionary.CreateBuilder>(); - parsers.Put(typeof(string), value => value); + parsers.Put(typeof(string), value => value.Value); parsers.Put(typeof(bool), SafeParse(bool.Parse)); parsers.Put(typeof(bool?), SafeParse(bool.Parse)); parsers.Put(typeof(byte), SafeParse(byte.Parse)); @@ -411,4 +411,4 @@ namespace {{packageName}}.{{packageContext}}.Utils Path, Header } -} \ No newline at end of file +} From eca7344f46f4e88bb170c5617b56482f84b86f6d Mon Sep 17 00:00:00 2001 From: simo9000 Date: Fri, 21 Oct 2016 19:51:59 -0700 Subject: [PATCH 2/3] Updated nancyfx sample --- samples/server/petstore/nancyfx/IO.Swagger.sln | 10 +++++----- .../petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj | 2 +- .../nancyfx/src/IO.Swagger/Models/ApiResponse.cs | 2 +- .../petstore/nancyfx/src/IO.Swagger/Models/Category.cs | 2 +- .../petstore/nancyfx/src/IO.Swagger/Models/Order.cs | 2 +- .../petstore/nancyfx/src/IO.Swagger/Models/Pet.cs | 2 +- .../petstore/nancyfx/src/IO.Swagger/Models/Tag.cs | 2 +- .../petstore/nancyfx/src/IO.Swagger/Models/User.cs | 2 +- .../nancyfx/src/IO.Swagger/Utils/Parameters.cs | 4 ++-- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/samples/server/petstore/nancyfx/IO.Swagger.sln b/samples/server/petstore/nancyfx/IO.Swagger.sln index 0a38b2ea778..46c91d37d01 100644 --- a/samples/server/petstore/nancyfx/IO.Swagger.sln +++ b/samples/server/petstore/nancyfx/IO.Swagger.sln @@ -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", "{D198220E-91F6-402F-966F-8EF6105B1B75}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -10,10 +10,10 @@ Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution -{D198220E-91F6-402F-966F-8EF6105B1B75}.Debug|Any CPU.ActiveCfg = Debug|Any CPU -{D198220E-91F6-402F-966F-8EF6105B1B75}.Debug|Any CPU.Build.0 = Debug|Any CPU -{D198220E-91F6-402F-966F-8EF6105B1B75}.Release|Any CPU.ActiveCfg = Release|Any CPU -{D198220E-91F6-402F-966F-8EF6105B1B75}.Release|Any CPU.Build.0 = Release|Any CPU +{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}.Debug|Any CPU.Build.0 = Debug|Any CPU +{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}.Release|Any CPU.ActiveCfg = Release|Any CPU +{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}.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 diff --git a/samples/server/petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj b/samples/server/petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj index 1d18142a14a..4c1283eae38 100644 --- a/samples/server/petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj +++ b/samples/server/petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {D198220E-91F6-402F-966F-8EF6105B1B75} + {1CE943E7-586D-4D9C-BE8B-3E005FDC39D1} Library Properties IO.Swagger.v2 diff --git a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/ApiResponse.cs b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/ApiResponse.cs index 8eb40938412..3b8ad566af8 100644 --- a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/ApiResponse.cs +++ b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/ApiResponse.cs @@ -8,7 +8,7 @@ namespace IO.Swagger.v2.Models { /// - /// ApiResponse + /// Describes the result of uploading an image resource /// public sealed class ApiResponse: IEquatable { diff --git a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Category.cs b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Category.cs index 759bedd74a9..c6089446e51 100644 --- a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Category.cs +++ b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Category.cs @@ -8,7 +8,7 @@ namespace IO.Swagger.v2.Models { /// - /// Category + /// A category for a pet /// public sealed class Category: IEquatable { diff --git a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Order.cs b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Order.cs index 7404b483830..f1f94f39d77 100644 --- a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Order.cs +++ b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Order.cs @@ -8,7 +8,7 @@ namespace IO.Swagger.v2.Models { /// - /// Order + /// An order for a pets from the pet store /// public sealed class Order: IEquatable { diff --git a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Pet.cs b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Pet.cs index aef03f6ba97..b092feb9e85 100644 --- a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Pet.cs +++ b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Pet.cs @@ -8,7 +8,7 @@ namespace IO.Swagger.v2.Models { /// - /// Pet + /// A pet for sale in the pet store /// public sealed class Pet: IEquatable { diff --git a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Tag.cs b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Tag.cs index 36fd8204a8a..94b15c123a1 100644 --- a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Tag.cs +++ b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/Tag.cs @@ -8,7 +8,7 @@ namespace IO.Swagger.v2.Models { /// - /// Tag + /// A tag for a pet /// public sealed class Tag: IEquatable { diff --git a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/User.cs b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/User.cs index 69d079ff42d..bd720290ad4 100644 --- a/samples/server/petstore/nancyfx/src/IO.Swagger/Models/User.cs +++ b/samples/server/petstore/nancyfx/src/IO.Swagger/Models/User.cs @@ -8,7 +8,7 @@ namespace IO.Swagger.v2.Models { /// - /// User + /// A User who is purchasing from the pet store /// public sealed class User: IEquatable { diff --git a/samples/server/petstore/nancyfx/src/IO.Swagger/Utils/Parameters.cs b/samples/server/petstore/nancyfx/src/IO.Swagger/Utils/Parameters.cs index 954683f095f..7f0e848f98a 100644 --- a/samples/server/petstore/nancyfx/src/IO.Swagger/Utils/Parameters.cs +++ b/samples/server/petstore/nancyfx/src/IO.Swagger/Utils/Parameters.cs @@ -134,7 +134,7 @@ private static TValue DynamicValueOf(dynamic parameters, string name) private static IDictionary> CreateParsers() { var parsers = ImmutableDictionary.CreateBuilder>(); - parsers.Put(typeof(string), value => value); + parsers.Put(typeof(string), value => value.Value); parsers.Put(typeof(bool), SafeParse(bool.Parse)); parsers.Put(typeof(bool?), SafeParse(bool.Parse)); parsers.Put(typeof(byte), SafeParse(byte.Parse)); @@ -411,4 +411,4 @@ internal enum ParameterType Path, Header } -} \ No newline at end of file +} From 2735a162ada5d4751a4b7fe843d8f3aaafe5cf5a Mon Sep 17 00:00:00 2001 From: simo9000 Date: Sat, 22 Oct 2016 18:23:11 -0700 Subject: [PATCH 3/3] Added switch to config to toggle use of yaml base path as module paths --- .../codegen/languages/NancyFXServerCodegen.java | 5 ++++- samples/server/petstore/nancyfx/IO.Swagger.sln | 10 +++++----- .../petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj | 2 +- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NancyFXServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NancyFXServerCodegen.java index 571bcdef920..3e2c3432356 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NancyFXServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/NancyFXServerCodegen.java @@ -55,6 +55,7 @@ public class NancyFXServerCodegen extends AbstractCSharpCodegen { private static final String API_NAMESPACE = "Modules"; private static final String MODEL_NAMESPACE = "Models"; private static final String IMMUTABLE_OPTION = "immutable"; + private static final String USE_BASE_PATH = "writeModulePath"; private static final Map> propertyToSwaggerTypeMapping = createPropertyToSwaggerTypeMapping(); @@ -89,6 +90,7 @@ public NancyFXServerCodegen() { addSwitch(USE_COLLECTION, USE_COLLECTION_DESC, useCollection); addSwitch(RETURN_ICOLLECTION, RETURN_ICOLLECTION_DESC, returnICollection); addSwitch(IMMUTABLE_OPTION, "Enabled by default. If disabled generates model classes with setters", true); + addSwitch(USE_BASE_PATH, "Enabled by default. If disabled, module paths will not mirror api base path", true); typeMapping.putAll(nodaTimeTypesMappings()); languageSpecificPrimitives.addAll(nodaTimePrimitiveTypes()); @@ -348,7 +350,8 @@ public String toModelName(final String name) { @Override public void preprocessSwagger(final Swagger swagger) { additionalProperties.put("packageContext", sanitizeName(swagger.getBasePath())); - additionalProperties.put("baseContext", swagger.getBasePath()); + final Object basePathOption = additionalProperties.get(USE_BASE_PATH); + additionalProperties.put("baseContext", basePathOption == null ? swagger.getBasePath() : "/"); } @Override diff --git a/samples/server/petstore/nancyfx/IO.Swagger.sln b/samples/server/petstore/nancyfx/IO.Swagger.sln index 46c91d37d01..36545685cca 100644 --- a/samples/server/petstore/nancyfx/IO.Swagger.sln +++ b/samples/server/petstore/nancyfx/IO.Swagger.sln @@ -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", "{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{7D50D142-14E1-4E99-842B-18D3AF159948}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -10,10 +10,10 @@ Debug|Any CPU = Debug|Any CPU Release|Any CPU = Release|Any CPU EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution -{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU -{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}.Debug|Any CPU.Build.0 = Debug|Any CPU -{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}.Release|Any CPU.ActiveCfg = Release|Any CPU -{1CE943E7-586D-4D9C-BE8B-3E005FDC39D1}.Release|Any CPU.Build.0 = Release|Any CPU +{7D50D142-14E1-4E99-842B-18D3AF159948}.Debug|Any CPU.ActiveCfg = Debug|Any CPU +{7D50D142-14E1-4E99-842B-18D3AF159948}.Debug|Any CPU.Build.0 = Debug|Any CPU +{7D50D142-14E1-4E99-842B-18D3AF159948}.Release|Any CPU.ActiveCfg = Release|Any CPU +{7D50D142-14E1-4E99-842B-18D3AF159948}.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 diff --git a/samples/server/petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj b/samples/server/petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj index 4c1283eae38..1aa91a89d2b 100644 --- a/samples/server/petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj +++ b/samples/server/petstore/nancyfx/src/IO.Swagger/IO.Swagger.csproj @@ -3,7 +3,7 @@ Debug AnyCPU - {1CE943E7-586D-4D9C-BE8B-3E005FDC39D1} + {7D50D142-14E1-4E99-842B-18D3AF159948} Library Properties IO.Swagger.v2