From ecda7af82284ea3b684f9c6186f40e7568b53adc Mon Sep 17 00:00:00 2001 From: knom Date: Tue, 5 Dec 2017 13:57:22 +0000 Subject: [PATCH 1/6] Updated to .NET Core 2.0 --- .../languages/AspNetCoreServerCodegen.java | 4 +- .../resources/aspnetcore/Program.mustache | 30 ++++--- .../aspnetcore/Project.csproj.mustache | 25 ++++++ .../aspnetcore/Project.xproj.mustache | 19 ---- .../main/resources/aspnetcore/README.mustache | 2 +- .../resources/aspnetcore/Solution.mustache | 13 +-- .../resources/aspnetcore/Startup.mustache | 27 +++--- .../resources/aspnetcore/build.bat.mustache | 2 +- .../resources/aspnetcore/build.sh.mustache | 2 +- .../src/main/resources/aspnetcore/global.json | 7 -- .../aspnetcore/project.json.mustache | 89 ------------------- 11 files changed, 63 insertions(+), 157 deletions(-) create mode 100644 modules/swagger-codegen/src/main/resources/aspnetcore/Project.csproj.mustache delete mode 100644 modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache delete mode 100644 modules/swagger-codegen/src/main/resources/aspnetcore/global.json delete mode 100644 modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java index 7bceec036d1..5f87c4f3dc8 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java @@ -103,7 +103,6 @@ public void processOpts() { String packageFolder = sourceFolder + File.separator + packageName; supportingFiles.add(new SupportingFile("NuGet.Config", "", "NuGet.Config")); - supportingFiles.add(new SupportingFile("global.json", "", "global.json")); supportingFiles.add(new SupportingFile("build.sh.mustache", "", "build.sh")); supportingFiles.add(new SupportingFile("build.bat.mustache", "", "build.bat")); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); @@ -112,13 +111,12 @@ public void processOpts() { supportingFiles.add(new SupportingFile("gitignore", packageFolder, ".gitignore")); supportingFiles.add(new SupportingFile("appsettings.json", packageFolder, "appsettings.json")); - supportingFiles.add(new SupportingFile("project.json.mustache", packageFolder, "project.json")); supportingFiles.add(new SupportingFile("Startup.mustache", packageFolder, "Startup.cs")); supportingFiles.add(new SupportingFile("Program.mustache", packageFolder, "Program.cs")); supportingFiles.add(new SupportingFile("validateModel.mustache", packageFolder + File.separator + "Attributes", "ValidateModelStateAttribute.cs")); supportingFiles.add(new SupportingFile("web.config", packageFolder, "web.config")); - supportingFiles.add(new SupportingFile("Project.xproj.mustache", packageFolder, this.packageName + ".xproj")); + supportingFiles.add(new SupportingFile("Project.csproj.mustache", packageFolder, this.packageName + ".csproj")); supportingFiles.add(new SupportingFile("Properties" + File.separator + "launchSettings.json", packageFolder + File.separator + "Properties", "launchSettings.json")); diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache index 7e6a12ed022..52fdd13d052 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache @@ -1,5 +1,11 @@ +using System; +using System.Collections.Generic; using System.IO; +using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore; namespace {{packageName}} { @@ -14,21 +20,17 @@ namespace {{packageName}} /// public static void Main(string[] args) { - var host = new WebHostBuilder() - .UseKestrel(options => - { - // options.ThreadCount = 4; - // options.UseHttps("cert.pfx", "certpassword"); - options.NoDelay = true; - options.UseConnectionLogging(); - }) - .UseUrls("http://+:5000" /*, "https://+:5001" */) - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() + BuildWebHost(args).Run(); + } + + /// + /// Build Web Host + /// + /// + /// Webhost + public static IWebHost BuildWebHost(string[] args) => + WebHost.CreateDefaultBuilder(args) .UseStartup() .Build(); - - host.Run(); - } } } diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Project.csproj.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Project.csproj.mustache new file mode 100644 index 00000000000..d958ce2e4f0 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Project.csproj.mustache @@ -0,0 +1,25 @@ + + + {{packageName}} + {{packageName}} + netcoreapp2.0 + true + true + {{packageName}} + {{packageName}} + + + + + + + + + + + + + + + + diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache deleted file mode 100644 index 16f3716730d..00000000000 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache +++ /dev/null @@ -1,19 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - {{packageGuid}} - {{packageName}} - .\obj - .\bin\ - v4.6 - - - 2.0 - - - \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache index 6788ea980eb..03f23c1916a 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache @@ -1,4 +1,4 @@ -# {{packageName}} - ASP.NET Core 1.0 Server +# {{packageName}} - ASP.NET Core 2.0 Server {{#appDescription}} {{{appDescription}}} diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache index c86909a4c8b..80e5f652101 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache @@ -1,13 +1,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26114.2 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{AFF6BF88-8A7D-4736-AF81-31BCE86B19BD}" - ProjectSection(SolutionItems) = preProject - global.json = global.json - EndProjectSection -EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "{{packageName}}", "src\{{packageName}}\{{packageName}}.xproj", "{{packageGuid}}" +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "{{packageName}}", "src\{{packageName}}\{{packageName}}.csproj", "{{packageGuid}}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -23,4 +18,4 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection -EndGlobal \ No newline at end of file +EndGlobal diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache index cb3a3bb9288..dbfc169dc06 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache @@ -26,16 +26,11 @@ namespace {{packageName}} /// Constructor /// /// - public Startup(IHostingEnvironment env) + /// + public Startup(IHostingEnvironment env, IConfiguration configuration) { _hostingEnv = env; - - var builder = new ConfigurationBuilder() - .SetBasePath(env.ContentRootPath) - .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) - .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) - .AddEnvironmentVariables(); - Configuration = builder.Build(); + Configuration = configuration; } /// @@ -62,7 +57,7 @@ namespace {{packageName}} { Version = "v1", Title = "{{packageName}}", - Description = "{{packageName}} (ASP.NET Core 1.0)" + Description = "{{packageName}} (ASP.NET Core 2.0)" }); c.CustomSchemaIds(type => type.FriendlyId(true)); c.DescribeAllEnumsAsStrings(); @@ -78,10 +73,6 @@ namespace {{packageName}} /// public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole(Configuration.GetSection("Logging")) - .AddDebug(); - app .UseMvc() .UseDefaultFiles() @@ -91,6 +82,16 @@ namespace {{packageName}} { c.SwaggerEndpoint("/swagger/v1/swagger.json", "{{packageName}}"); }); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + else + { + //TODO: Enable production exception handling (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling) + // app.UseExceptionHandler("/Home/Error"); + } } } } diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache index d3d6188037a..7b6756bc287 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache @@ -5,5 +5,5 @@ dotnet restore src\{{packageName}} dotnet build src\{{packageName}} -echo Now, run the following to start the project: dotnet run -p src\{{packageName}}\project.json web. +echo Now, run the following to start the project: dotnet run -p src\{{packageName}}\{{packageName}}.csproj --launch-profile web. echo. diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache index 779b4874d27..561c2cb0812 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache @@ -5,4 +5,4 @@ dotnet restore src/{{packageName}}/ && \ dotnet build src/{{packageName}}/ && \ - echo "Now, run the following to start the project: dotnet run -p src/{{packageName}}/project.json web" + echo "Now, run the following to start the project: dotnet run -p src/{{packageName}}/{{packageName}}.csproj --launch-profile web" diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/global.json b/modules/swagger-codegen/src/main/resources/aspnetcore/global.json deleted file mode 100644 index 175b2d57e38..00000000000 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/global.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "projects": [ "src" ], - "sdk": { - "version": "1.0.0-preview2-003121", - "runtime": "coreclr" - } -} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache deleted file mode 100644 index 9392bf92231..00000000000 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache +++ /dev/null @@ -1,89 +0,0 @@ -{ - "title": "Swagger UI", - "version": "{{packageVersion}}-*", - "copyright": "{{packageName}}", - "description": "{{packageName}}", - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.0.0", - "type": "platform" - }, - "Microsoft.AspNetCore.Mvc": "1.0.0", - "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", - "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", - "Microsoft.AspNetCore.Server.Kestrel.Https": "1.0.0", - "Microsoft.AspNetCore.StaticFiles": "1.0.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", - "Microsoft.Extensions.Configuration.Json": "1.0.0", - "Microsoft.Extensions.Logging": "1.0.0", - "Microsoft.Extensions.Logging.Console": "1.0.0", - "Microsoft.Extensions.Logging.Debug": "1.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", - "Microsoft.EntityFrameworkCore": "1.0.0", - "Swashbuckle.AspNetCore": "1.0.0-rc3", - "Newtonsoft.Json": "10.0.3", - "JsonSubTypes": "1.1.3" - }, - - "tools": { - "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", - - "Microsoft.Extensions.SecretManager.Tools": { - "imports": [ - "netstandard1.6", - "portable-net45+win8+dnxcore50", - "portable-net45+win8" - ], - "version": "1.0.0-preview2-final" - } - }, - - "frameworks": { - "netcoreapp1.0": { - "imports": [ - "dotnet5.6", - "dnxcore50", - "netstandard1.6", - "portable-net452+win81" - ] - } - }, - - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "xmlDoc": true, - "compile": { - "exclude": [ - "wwwroot", - "node_modules", - "bower_components" - ] - } - }, - - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - - "publishOptions": { - "include": [ - "wwwroot", - "Views", - "Areas/**/Views", - "appsettings.json", - "web.config" - ], - "exclude": [ - "**.user", - "**.vspscc" - ] - }, - - "scripts": { - "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] - } -} From 5f8d27315bb666db5eefac83f1105c820049b9f8 Mon Sep 17 00:00:00 2001 From: knom Date: Tue, 5 Dec 2017 14:10:56 +0000 Subject: [PATCH 2/6] Fixed issue with IConfiguration vs. IConfigurationRoot --- .../src/main/resources/aspnetcore/Startup.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache index dbfc169dc06..47009226f2d 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache @@ -20,7 +20,7 @@ namespace {{packageName}} { private readonly IHostingEnvironment _hostingEnv; - private IConfigurationRoot Configuration { get; } + private IConfiguration Configuration { get; } /// /// Constructor From 444844f08d80480353b797531f743c40b3895b8c Mon Sep 17 00:00:00 2001 From: knom Date: Tue, 5 Dec 2017 14:11:16 +0000 Subject: [PATCH 3/6] Ran bin/aspnetcore-petstore-server.sh --- .../server/petstore/aspnetcore/IO.Swagger.sln | 13 +-- samples/server/petstore/aspnetcore/README.md | 2 +- samples/server/petstore/aspnetcore/build.bat | 2 +- samples/server/petstore/aspnetcore/build.sh | 2 +- .../server/petstore/aspnetcore/global.json | 7 -- .../src/IO.Swagger/Controllers/PetApi.cs | 10 +-- .../src/IO.Swagger/Controllers/StoreApi.cs | 2 +- .../src/IO.Swagger/Controllers/UserApi.cs | 10 +-- .../src/IO.Swagger/IO.Swagger.csproj | 25 ++++++ .../src/IO.Swagger/IO.Swagger.xproj | 19 ---- .../aspnetcore/src/IO.Swagger/Models/Order.cs | 6 +- .../aspnetcore/src/IO.Swagger/Models/Pet.cs | 6 +- .../aspnetcore/src/IO.Swagger/Program.cs | 30 ++++--- .../aspnetcore/src/IO.Swagger/Startup.cs | 29 +++--- .../aspnetcore/src/IO.Swagger/project.json | 88 ------------------- 15 files changed, 80 insertions(+), 171 deletions(-) delete mode 100644 samples/server/petstore/aspnetcore/global.json create mode 100644 samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.csproj delete mode 100644 samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj delete mode 100644 samples/server/petstore/aspnetcore/src/IO.Swagger/project.json diff --git a/samples/server/petstore/aspnetcore/IO.Swagger.sln b/samples/server/petstore/aspnetcore/IO.Swagger.sln index 092519859e9..045f3a11a74 100644 --- a/samples/server/petstore/aspnetcore/IO.Swagger.sln +++ b/samples/server/petstore/aspnetcore/IO.Swagger.sln @@ -1,13 +1,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26114.2 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{AFF6BF88-8A7D-4736-AF81-31BCE86B19BD}" - ProjectSection(SolutionItems) = preProject - global.json = global.json - EndProjectSection -EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.xproj", "{3C799344-F285-4669-8FD5-7ED9B795D5C5}" +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{3C799344-F285-4669-8FD5-7ED9B795D5C5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -23,4 +18,4 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection -EndGlobal \ No newline at end of file +EndGlobal diff --git a/samples/server/petstore/aspnetcore/README.md b/samples/server/petstore/aspnetcore/README.md index 664d66c2cd5..07aa834ff03 100644 --- a/samples/server/petstore/aspnetcore/README.md +++ b/samples/server/petstore/aspnetcore/README.md @@ -1,4 +1,4 @@ -# IO.Swagger - ASP.NET Core 1.0 Server +# IO.Swagger - ASP.NET Core 2.0 Server This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. diff --git a/samples/server/petstore/aspnetcore/build.bat b/samples/server/petstore/aspnetcore/build.bat index dd08a78334b..2e041233a06 100644 --- a/samples/server/petstore/aspnetcore/build.bat +++ b/samples/server/petstore/aspnetcore/build.bat @@ -5,5 +5,5 @@ dotnet restore src\IO.Swagger dotnet build src\IO.Swagger -echo Now, run the following to start the project: dotnet run -p src\IO.Swagger\project.json web. +echo Now, run the following to start the project: dotnet run -p src\IO.Swagger\IO.Swagger.csproj --launch-profile web. echo. diff --git a/samples/server/petstore/aspnetcore/build.sh b/samples/server/petstore/aspnetcore/build.sh index ef805e57672..ce6063a2f49 100644 --- a/samples/server/petstore/aspnetcore/build.sh +++ b/samples/server/petstore/aspnetcore/build.sh @@ -5,4 +5,4 @@ dotnet restore src/IO.Swagger/ && \ dotnet build src/IO.Swagger/ && \ - echo "Now, run the following to start the project: dotnet run -p src/IO.Swagger/project.json web" + echo "Now, run the following to start the project: dotnet run -p src/IO.Swagger/IO.Swagger.csproj --launch-profile web" diff --git a/samples/server/petstore/aspnetcore/global.json b/samples/server/petstore/aspnetcore/global.json deleted file mode 100644 index 175b2d57e38..00000000000 --- a/samples/server/petstore/aspnetcore/global.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "projects": [ "src" ], - "sdk": { - "version": "1.0.0-preview2-003121", - "runtime": "coreclr" - } -} \ No newline at end of file diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs index ad5f2d39cec..af7b7afabd2 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/PetApi.cs @@ -33,7 +33,7 @@ public class PetApiController : Controller /// /// Add a new pet to the store /// - /// + /// Pet object that needs to be added to the store /// Invalid input [HttpPost] @@ -48,7 +48,7 @@ public virtual void AddPet([FromBody]Pet body) /// /// Deletes a pet /// - /// + /// Pet id to delete /// /// Invalid pet value @@ -135,7 +135,7 @@ public virtual IActionResult GetPetById([FromRoute]long? petId) /// /// Update an existing pet /// - /// + /// Pet object that needs to be added to the store /// Invalid ID supplied /// Pet not found @@ -152,7 +152,7 @@ public virtual void UpdatePet([FromBody]Pet body) /// /// Updates a pet in the store with form data /// - /// + /// ID of pet that needs to be updated /// Updated name of the pet /// Updated status of the pet @@ -169,7 +169,7 @@ public virtual void UpdatePetWithForm([FromRoute]long? petId, [FromForm]string n /// /// uploads an image /// - /// + /// ID of pet to update /// Additional data to pass to server /// file to upload diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs index 0bfb79eb2d2..77744134b52 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/StoreApi.cs @@ -94,7 +94,7 @@ public virtual IActionResult GetOrderById([FromRoute]long? orderId) /// /// Place an order for a pet /// - /// + /// order placed for purchasing the pet /// successful operation /// Invalid Order diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs index aaa5d027c5d..e6d275e8ff1 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Controllers/UserApi.cs @@ -48,7 +48,7 @@ public virtual void CreateUser([FromBody]User body) /// /// Creates list of users with given input array /// - /// + /// List of user object /// successful operation [HttpPost] @@ -63,7 +63,7 @@ public virtual void CreateUsersWithArrayInput([FromBody]List body) /// /// Creates list of users with given input array /// - /// + /// List of user object /// successful operation [HttpPost] @@ -94,7 +94,7 @@ public virtual void DeleteUser([FromRoute]string username) /// /// Get user by user name /// - /// + /// The name that needs to be fetched. Use user1 for testing. /// successful operation /// Invalid username supplied @@ -119,7 +119,7 @@ public virtual IActionResult GetUserByName([FromRoute]string username) /// /// Logs user into the system /// - /// + /// The user name for login /// The password for login in clear text /// successful operation @@ -143,7 +143,7 @@ public virtual IActionResult LoginUser([FromQuery]string username, [FromQuery]st /// /// Logs out current logged in user session /// - /// + /// successful operation [HttpGet] [Route("/v2/user/logout")] diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.csproj b/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.csproj new file mode 100644 index 00000000000..4f97a13db28 --- /dev/null +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.csproj @@ -0,0 +1,25 @@ + + + IO.Swagger + IO.Swagger + netcoreapp2.0 + true + true + IO.Swagger + IO.Swagger + + + + + + + + + + + + + + + + diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj b/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj deleted file mode 100644 index 5d8610dae5e..00000000000 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - {3C799344-F285-4669-8FD5-7ED9B795D5C5} - IO.Swagger - .\obj - .\bin\ - v4.6 - - - 2.0 - - - \ No newline at end of file diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs index d10381c688b..1ce1b448c8c 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Order.cs @@ -60,19 +60,19 @@ public enum StatusEnum /// Enum PlacedEnum for "placed" /// [EnumMember(Value = "placed")] - PlacedEnum, + PlacedEnum = 1, /// /// Enum ApprovedEnum for "approved" /// [EnumMember(Value = "approved")] - ApprovedEnum, + ApprovedEnum = 2, /// /// Enum DeliveredEnum for "delivered" /// [EnumMember(Value = "delivered")] - DeliveredEnum + DeliveredEnum = 3 } /// diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs index 8396dc33f13..329a0986435 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Models/Pet.cs @@ -68,19 +68,19 @@ public enum StatusEnum /// Enum AvailableEnum for "available" /// [EnumMember(Value = "available")] - AvailableEnum, + AvailableEnum = 1, /// /// Enum PendingEnum for "pending" /// [EnumMember(Value = "pending")] - PendingEnum, + PendingEnum = 2, /// /// Enum SoldEnum for "sold" /// [EnumMember(Value = "sold")] - SoldEnum + SoldEnum = 3 } /// diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs index 343960bdc37..78bf226c2ed 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs @@ -1,5 +1,11 @@ +using System; +using System.Collections.Generic; using System.IO; +using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore; namespace IO.Swagger { @@ -14,21 +20,17 @@ public class Program /// public static void Main(string[] args) { - var host = new WebHostBuilder() - .UseKestrel(options => - { - // options.ThreadCount = 4; - // options.UseHttps("cert.pfx", "certpassword"); - options.NoDelay = true; - options.UseConnectionLogging(); - }) - .UseUrls("http://+:5000" /*, "https://+:5001" */) - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() + BuildWebHost(args).Run(); + } + + /// + /// Build Web Host + /// + /// + /// Webhost + public static IWebHost BuildWebHost(string[] args) => + WebHost.CreateDefaultBuilder(args) .UseStartup() .Build(); - - host.Run(); - } } } diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs index d1cf8d17032..79024f4e6a1 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs @@ -29,22 +29,17 @@ public class Startup { private readonly IHostingEnvironment _hostingEnv; - private IConfigurationRoot Configuration { get; } + private IConfiguration Configuration { get; } /// /// Constructor /// /// - public Startup(IHostingEnvironment env) + /// + public Startup(IHostingEnvironment env, IConfiguration configuration) { _hostingEnv = env; - - var builder = new ConfigurationBuilder() - .SetBasePath(env.ContentRootPath) - .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) - .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) - .AddEnvironmentVariables(); - Configuration = builder.Build(); + Configuration = configuration; } /// @@ -71,7 +66,7 @@ public void ConfigureServices(IServiceCollection services) { Version = "v1", Title = "IO.Swagger", - Description = "IO.Swagger (ASP.NET Core 1.0)" + Description = "IO.Swagger (ASP.NET Core 2.0)" }); c.CustomSchemaIds(type => type.FriendlyId(true)); c.DescribeAllEnumsAsStrings(); @@ -87,10 +82,6 @@ public void ConfigureServices(IServiceCollection services) /// public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole(Configuration.GetSection("Logging")) - .AddDebug(); - app .UseMvc() .UseDefaultFiles() @@ -100,6 +91,16 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF { c.SwaggerEndpoint("/swagger/v1/swagger.json", "IO.Swagger"); }); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + else + { + //TODO: Enable production exception handling (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling) + // app.UseExceptionHandler("/Home/Error"); + } } } } diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/project.json b/samples/server/petstore/aspnetcore/src/IO.Swagger/project.json deleted file mode 100644 index 3dbfd87246e..00000000000 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/project.json +++ /dev/null @@ -1,88 +0,0 @@ -{ - "title": "Swagger UI", - "version": "1.0.0-*", - "copyright": "IO.Swagger", - "description": "IO.Swagger", - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.0.0", - "type": "platform" - }, - "Microsoft.AspNetCore.Mvc": "1.0.0", - "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", - "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", - "Microsoft.AspNetCore.Server.Kestrel.Https": "1.0.0", - "Microsoft.AspNetCore.StaticFiles": "1.0.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", - "Microsoft.Extensions.Configuration.Json": "1.0.0", - "Microsoft.Extensions.Logging": "1.0.0", - "Microsoft.Extensions.Logging.Console": "1.0.0", - "Microsoft.Extensions.Logging.Debug": "1.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", - "Microsoft.EntityFrameworkCore": "1.0.0", - "Swashbuckle.AspNetCore": "1.0.0-rc3", - "Newtonsoft.Json": "9.0.1" - }, - - "tools": { - "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", - - "Microsoft.Extensions.SecretManager.Tools": { - "imports": [ - "netstandard1.6", - "portable-net45+win8+dnxcore50", - "portable-net45+win8" - ], - "version": "1.0.0-preview2-final" - } - }, - - "frameworks": { - "netcoreapp1.0": { - "imports": [ - "dotnet5.6", - "dnxcore50", - "netstandard1.6", - "portable-net452+win81" - ] - } - }, - - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "xmlDoc": true, - "compile": { - "exclude": [ - "wwwroot", - "node_modules", - "bower_components" - ] - } - }, - - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - - "publishOptions": { - "include": [ - "wwwroot", - "Views", - "Areas/**/Views", - "appsettings.json", - "web.config" - ], - "exclude": [ - "**.user", - "**.vspscc" - ] - }, - - "scripts": { - "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] - } -} From 0daf99ede4d19f1d6880eec191c142655358b933 Mon Sep 17 00:00:00 2001 From: knom Date: Tue, 5 Dec 2017 13:57:22 +0000 Subject: [PATCH 4/6] Updated to .NET Core 2.0 --- .../languages/AspNetCoreServerCodegen.java | 4 +- .../resources/aspnetcore/Program.mustache | 30 ++++--- .../aspnetcore/Project.csproj.mustache | 25 ++++++ .../aspnetcore/Project.xproj.mustache | 19 ---- .../main/resources/aspnetcore/README.mustache | 2 +- .../resources/aspnetcore/Solution.mustache | 13 +-- .../resources/aspnetcore/Startup.mustache | 27 +++--- .../resources/aspnetcore/build.bat.mustache | 2 +- .../resources/aspnetcore/build.sh.mustache | 2 +- .../src/main/resources/aspnetcore/global.json | 7 -- .../aspnetcore/project.json.mustache | 89 ------------------- 11 files changed, 63 insertions(+), 157 deletions(-) create mode 100644 modules/swagger-codegen/src/main/resources/aspnetcore/Project.csproj.mustache delete mode 100644 modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache delete mode 100644 modules/swagger-codegen/src/main/resources/aspnetcore/global.json delete mode 100644 modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java index 7bceec036d1..5f87c4f3dc8 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/languages/AspNetCoreServerCodegen.java @@ -103,7 +103,6 @@ public void processOpts() { String packageFolder = sourceFolder + File.separator + packageName; supportingFiles.add(new SupportingFile("NuGet.Config", "", "NuGet.Config")); - supportingFiles.add(new SupportingFile("global.json", "", "global.json")); supportingFiles.add(new SupportingFile("build.sh.mustache", "", "build.sh")); supportingFiles.add(new SupportingFile("build.bat.mustache", "", "build.bat")); supportingFiles.add(new SupportingFile("README.mustache", "", "README.md")); @@ -112,13 +111,12 @@ public void processOpts() { supportingFiles.add(new SupportingFile("gitignore", packageFolder, ".gitignore")); supportingFiles.add(new SupportingFile("appsettings.json", packageFolder, "appsettings.json")); - supportingFiles.add(new SupportingFile("project.json.mustache", packageFolder, "project.json")); supportingFiles.add(new SupportingFile("Startup.mustache", packageFolder, "Startup.cs")); supportingFiles.add(new SupportingFile("Program.mustache", packageFolder, "Program.cs")); supportingFiles.add(new SupportingFile("validateModel.mustache", packageFolder + File.separator + "Attributes", "ValidateModelStateAttribute.cs")); supportingFiles.add(new SupportingFile("web.config", packageFolder, "web.config")); - supportingFiles.add(new SupportingFile("Project.xproj.mustache", packageFolder, this.packageName + ".xproj")); + supportingFiles.add(new SupportingFile("Project.csproj.mustache", packageFolder, this.packageName + ".csproj")); supportingFiles.add(new SupportingFile("Properties" + File.separator + "launchSettings.json", packageFolder + File.separator + "Properties", "launchSettings.json")); diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache index 7e6a12ed022..52fdd13d052 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Program.mustache @@ -1,5 +1,11 @@ +using System; +using System.Collections.Generic; using System.IO; +using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore; namespace {{packageName}} { @@ -14,21 +20,17 @@ namespace {{packageName}} /// public static void Main(string[] args) { - var host = new WebHostBuilder() - .UseKestrel(options => - { - // options.ThreadCount = 4; - // options.UseHttps("cert.pfx", "certpassword"); - options.NoDelay = true; - options.UseConnectionLogging(); - }) - .UseUrls("http://+:5000" /*, "https://+:5001" */) - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() + BuildWebHost(args).Run(); + } + + /// + /// Build Web Host + /// + /// + /// Webhost + public static IWebHost BuildWebHost(string[] args) => + WebHost.CreateDefaultBuilder(args) .UseStartup() .Build(); - - host.Run(); - } } } diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Project.csproj.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Project.csproj.mustache new file mode 100644 index 00000000000..d958ce2e4f0 --- /dev/null +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Project.csproj.mustache @@ -0,0 +1,25 @@ + + + {{packageName}} + {{packageName}} + netcoreapp2.0 + true + true + {{packageName}} + {{packageName}} + + + + + + + + + + + + + + + + diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache deleted file mode 100644 index 16f3716730d..00000000000 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Project.xproj.mustache +++ /dev/null @@ -1,19 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - {{packageGuid}} - {{packageName}} - .\obj - .\bin\ - v4.6 - - - 2.0 - - - \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache index 6788ea980eb..03f23c1916a 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/README.mustache @@ -1,4 +1,4 @@ -# {{packageName}} - ASP.NET Core 1.0 Server +# {{packageName}} - ASP.NET Core 2.0 Server {{#appDescription}} {{{appDescription}}} diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache index c86909a4c8b..80e5f652101 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Solution.mustache @@ -1,13 +1,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26114.2 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{AFF6BF88-8A7D-4736-AF81-31BCE86B19BD}" - ProjectSection(SolutionItems) = preProject - global.json = global.json - EndProjectSection -EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "{{packageName}}", "src\{{packageName}}\{{packageName}}.xproj", "{{packageGuid}}" +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "{{packageName}}", "src\{{packageName}}\{{packageName}}.csproj", "{{packageGuid}}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -23,4 +18,4 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection -EndGlobal \ No newline at end of file +EndGlobal diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache index cb3a3bb9288..dbfc169dc06 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache @@ -26,16 +26,11 @@ namespace {{packageName}} /// Constructor /// /// - public Startup(IHostingEnvironment env) + /// + public Startup(IHostingEnvironment env, IConfiguration configuration) { _hostingEnv = env; - - var builder = new ConfigurationBuilder() - .SetBasePath(env.ContentRootPath) - .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) - .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) - .AddEnvironmentVariables(); - Configuration = builder.Build(); + Configuration = configuration; } /// @@ -62,7 +57,7 @@ namespace {{packageName}} { Version = "v1", Title = "{{packageName}}", - Description = "{{packageName}} (ASP.NET Core 1.0)" + Description = "{{packageName}} (ASP.NET Core 2.0)" }); c.CustomSchemaIds(type => type.FriendlyId(true)); c.DescribeAllEnumsAsStrings(); @@ -78,10 +73,6 @@ namespace {{packageName}} /// public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole(Configuration.GetSection("Logging")) - .AddDebug(); - app .UseMvc() .UseDefaultFiles() @@ -91,6 +82,16 @@ namespace {{packageName}} { c.SwaggerEndpoint("/swagger/v1/swagger.json", "{{packageName}}"); }); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + else + { + //TODO: Enable production exception handling (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling) + // app.UseExceptionHandler("/Home/Error"); + } } } } diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache index d3d6188037a..7b6756bc287 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/build.bat.mustache @@ -5,5 +5,5 @@ dotnet restore src\{{packageName}} dotnet build src\{{packageName}} -echo Now, run the following to start the project: dotnet run -p src\{{packageName}}\project.json web. +echo Now, run the following to start the project: dotnet run -p src\{{packageName}}\{{packageName}}.csproj --launch-profile web. echo. diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache index 779b4874d27..561c2cb0812 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/build.sh.mustache @@ -5,4 +5,4 @@ dotnet restore src/{{packageName}}/ && \ dotnet build src/{{packageName}}/ && \ - echo "Now, run the following to start the project: dotnet run -p src/{{packageName}}/project.json web" + echo "Now, run the following to start the project: dotnet run -p src/{{packageName}}/{{packageName}}.csproj --launch-profile web" diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/global.json b/modules/swagger-codegen/src/main/resources/aspnetcore/global.json deleted file mode 100644 index 175b2d57e38..00000000000 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/global.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "projects": [ "src" ], - "sdk": { - "version": "1.0.0-preview2-003121", - "runtime": "coreclr" - } -} \ No newline at end of file diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache deleted file mode 100644 index 9392bf92231..00000000000 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/project.json.mustache +++ /dev/null @@ -1,89 +0,0 @@ -{ - "title": "Swagger UI", - "version": "{{packageVersion}}-*", - "copyright": "{{packageName}}", - "description": "{{packageName}}", - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.0.0", - "type": "platform" - }, - "Microsoft.AspNetCore.Mvc": "1.0.0", - "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", - "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", - "Microsoft.AspNetCore.Server.Kestrel.Https": "1.0.0", - "Microsoft.AspNetCore.StaticFiles": "1.0.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", - "Microsoft.Extensions.Configuration.Json": "1.0.0", - "Microsoft.Extensions.Logging": "1.0.0", - "Microsoft.Extensions.Logging.Console": "1.0.0", - "Microsoft.Extensions.Logging.Debug": "1.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", - "Microsoft.EntityFrameworkCore": "1.0.0", - "Swashbuckle.AspNetCore": "1.0.0-rc3", - "Newtonsoft.Json": "10.0.3", - "JsonSubTypes": "1.1.3" - }, - - "tools": { - "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", - - "Microsoft.Extensions.SecretManager.Tools": { - "imports": [ - "netstandard1.6", - "portable-net45+win8+dnxcore50", - "portable-net45+win8" - ], - "version": "1.0.0-preview2-final" - } - }, - - "frameworks": { - "netcoreapp1.0": { - "imports": [ - "dotnet5.6", - "dnxcore50", - "netstandard1.6", - "portable-net452+win81" - ] - } - }, - - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "xmlDoc": true, - "compile": { - "exclude": [ - "wwwroot", - "node_modules", - "bower_components" - ] - } - }, - - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - - "publishOptions": { - "include": [ - "wwwroot", - "Views", - "Areas/**/Views", - "appsettings.json", - "web.config" - ], - "exclude": [ - "**.user", - "**.vspscc" - ] - }, - - "scripts": { - "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] - } -} From a2fe94f3088516e1c9cf011cf10c161218cea586 Mon Sep 17 00:00:00 2001 From: knom Date: Tue, 5 Dec 2017 14:10:56 +0000 Subject: [PATCH 5/6] Fixed issue with IConfiguration vs. IConfigurationRoot --- .../src/main/resources/aspnetcore/Startup.mustache | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache b/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache index dbfc169dc06..47009226f2d 100644 --- a/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache +++ b/modules/swagger-codegen/src/main/resources/aspnetcore/Startup.mustache @@ -20,7 +20,7 @@ namespace {{packageName}} { private readonly IHostingEnvironment _hostingEnv; - private IConfigurationRoot Configuration { get; } + private IConfiguration Configuration { get; } /// /// Constructor From add91173adaa68cc2d8ad4773221d2898ae274fa Mon Sep 17 00:00:00 2001 From: knom Date: Tue, 5 Dec 2017 14:11:16 +0000 Subject: [PATCH 6/6] Ran bin/aspnetcore-petstore-server.sh --- .../server/petstore/aspnetcore/IO.Swagger.sln | 13 +-- samples/server/petstore/aspnetcore/README.md | 2 +- samples/server/petstore/aspnetcore/build.bat | 2 +- samples/server/petstore/aspnetcore/build.sh | 2 +- .../server/petstore/aspnetcore/global.json | 7 -- .../src/IO.Swagger/IO.Swagger.csproj | 25 ++++++ .../src/IO.Swagger/IO.Swagger.xproj | 19 ---- .../aspnetcore/src/IO.Swagger/Program.cs | 30 ++++--- .../aspnetcore/src/IO.Swagger/Startup.cs | 29 +++--- .../aspnetcore/src/IO.Swagger/project.json | 89 ------------------- 10 files changed, 63 insertions(+), 155 deletions(-) delete mode 100644 samples/server/petstore/aspnetcore/global.json create mode 100644 samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.csproj delete mode 100644 samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj delete mode 100644 samples/server/petstore/aspnetcore/src/IO.Swagger/project.json diff --git a/samples/server/petstore/aspnetcore/IO.Swagger.sln b/samples/server/petstore/aspnetcore/IO.Swagger.sln index 092519859e9..045f3a11a74 100644 --- a/samples/server/petstore/aspnetcore/IO.Swagger.sln +++ b/samples/server/petstore/aspnetcore/IO.Swagger.sln @@ -1,13 +1,8 @@ Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 14 -VisualStudioVersion = 14.0.25420.1 +# Visual Studio 15 +VisualStudioVersion = 15.0.26114.2 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{AFF6BF88-8A7D-4736-AF81-31BCE86B19BD}" - ProjectSection(SolutionItems) = preProject - global.json = global.json - EndProjectSection -EndProject -Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.xproj", "{3C799344-F285-4669-8FD5-7ED9B795D5C5}" +Project("{8BB2217D-0F2D-49D1-97BC-3654ED321F3B}") = "IO.Swagger", "src\IO.Swagger\IO.Swagger.csproj", "{3C799344-F285-4669-8FD5-7ED9B795D5C5}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -23,4 +18,4 @@ Global GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection -EndGlobal \ No newline at end of file +EndGlobal diff --git a/samples/server/petstore/aspnetcore/README.md b/samples/server/petstore/aspnetcore/README.md index 664d66c2cd5..07aa834ff03 100644 --- a/samples/server/petstore/aspnetcore/README.md +++ b/samples/server/petstore/aspnetcore/README.md @@ -1,4 +1,4 @@ -# IO.Swagger - ASP.NET Core 1.0 Server +# IO.Swagger - ASP.NET Core 2.0 Server This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters. diff --git a/samples/server/petstore/aspnetcore/build.bat b/samples/server/petstore/aspnetcore/build.bat index dd08a78334b..2e041233a06 100644 --- a/samples/server/petstore/aspnetcore/build.bat +++ b/samples/server/petstore/aspnetcore/build.bat @@ -5,5 +5,5 @@ dotnet restore src\IO.Swagger dotnet build src\IO.Swagger -echo Now, run the following to start the project: dotnet run -p src\IO.Swagger\project.json web. +echo Now, run the following to start the project: dotnet run -p src\IO.Swagger\IO.Swagger.csproj --launch-profile web. echo. diff --git a/samples/server/petstore/aspnetcore/build.sh b/samples/server/petstore/aspnetcore/build.sh index ef805e57672..ce6063a2f49 100644 --- a/samples/server/petstore/aspnetcore/build.sh +++ b/samples/server/petstore/aspnetcore/build.sh @@ -5,4 +5,4 @@ dotnet restore src/IO.Swagger/ && \ dotnet build src/IO.Swagger/ && \ - echo "Now, run the following to start the project: dotnet run -p src/IO.Swagger/project.json web" + echo "Now, run the following to start the project: dotnet run -p src/IO.Swagger/IO.Swagger.csproj --launch-profile web" diff --git a/samples/server/petstore/aspnetcore/global.json b/samples/server/petstore/aspnetcore/global.json deleted file mode 100644 index 175b2d57e38..00000000000 --- a/samples/server/petstore/aspnetcore/global.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "projects": [ "src" ], - "sdk": { - "version": "1.0.0-preview2-003121", - "runtime": "coreclr" - } -} \ No newline at end of file diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.csproj b/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.csproj new file mode 100644 index 00000000000..4f97a13db28 --- /dev/null +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.csproj @@ -0,0 +1,25 @@ + + + IO.Swagger + IO.Swagger + netcoreapp2.0 + true + true + IO.Swagger + IO.Swagger + + + + + + + + + + + + + + + + diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj b/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj deleted file mode 100644 index 5d8610dae5e..00000000000 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/IO.Swagger.xproj +++ /dev/null @@ -1,19 +0,0 @@ - - - - 14.0 - $(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion) - - - - {3C799344-F285-4669-8FD5-7ED9B795D5C5} - IO.Swagger - .\obj - .\bin\ - v4.6 - - - 2.0 - - - \ No newline at end of file diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs index 343960bdc37..78bf226c2ed 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Program.cs @@ -1,5 +1,11 @@ +using System; +using System.Collections.Generic; using System.IO; +using System.Linq; +using System.Threading.Tasks; using Microsoft.AspNetCore.Hosting; +using Microsoft.AspNetCore.Builder; +using Microsoft.AspNetCore; namespace IO.Swagger { @@ -14,21 +20,17 @@ public class Program /// public static void Main(string[] args) { - var host = new WebHostBuilder() - .UseKestrel(options => - { - // options.ThreadCount = 4; - // options.UseHttps("cert.pfx", "certpassword"); - options.NoDelay = true; - options.UseConnectionLogging(); - }) - .UseUrls("http://+:5000" /*, "https://+:5001" */) - .UseContentRoot(Directory.GetCurrentDirectory()) - .UseIISIntegration() + BuildWebHost(args).Run(); + } + + /// + /// Build Web Host + /// + /// + /// Webhost + public static IWebHost BuildWebHost(string[] args) => + WebHost.CreateDefaultBuilder(args) .UseStartup() .Build(); - - host.Run(); - } } } diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs b/samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs index d1cf8d17032..79024f4e6a1 100644 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs +++ b/samples/server/petstore/aspnetcore/src/IO.Swagger/Startup.cs @@ -29,22 +29,17 @@ public class Startup { private readonly IHostingEnvironment _hostingEnv; - private IConfigurationRoot Configuration { get; } + private IConfiguration Configuration { get; } /// /// Constructor /// /// - public Startup(IHostingEnvironment env) + /// + public Startup(IHostingEnvironment env, IConfiguration configuration) { _hostingEnv = env; - - var builder = new ConfigurationBuilder() - .SetBasePath(env.ContentRootPath) - .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) - .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) - .AddEnvironmentVariables(); - Configuration = builder.Build(); + Configuration = configuration; } /// @@ -71,7 +66,7 @@ public void ConfigureServices(IServiceCollection services) { Version = "v1", Title = "IO.Swagger", - Description = "IO.Swagger (ASP.NET Core 1.0)" + Description = "IO.Swagger (ASP.NET Core 2.0)" }); c.CustomSchemaIds(type => type.FriendlyId(true)); c.DescribeAllEnumsAsStrings(); @@ -87,10 +82,6 @@ public void ConfigureServices(IServiceCollection services) /// public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) { - loggerFactory - .AddConsole(Configuration.GetSection("Logging")) - .AddDebug(); - app .UseMvc() .UseDefaultFiles() @@ -100,6 +91,16 @@ public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerF { c.SwaggerEndpoint("/swagger/v1/swagger.json", "IO.Swagger"); }); + + if (env.IsDevelopment()) + { + app.UseDeveloperExceptionPage(); + } + else + { + //TODO: Enable production exception handling (https://docs.microsoft.com/en-us/aspnet/core/fundamentals/error-handling) + // app.UseExceptionHandler("/Home/Error"); + } } } } diff --git a/samples/server/petstore/aspnetcore/src/IO.Swagger/project.json b/samples/server/petstore/aspnetcore/src/IO.Swagger/project.json deleted file mode 100644 index 1d9b3396da1..00000000000 --- a/samples/server/petstore/aspnetcore/src/IO.Swagger/project.json +++ /dev/null @@ -1,89 +0,0 @@ -{ - "title": "Swagger UI", - "version": "1.0.0-*", - "copyright": "IO.Swagger", - "description": "IO.Swagger", - "dependencies": { - "Microsoft.NETCore.App": { - "version": "1.0.0", - "type": "platform" - }, - "Microsoft.AspNetCore.Mvc": "1.0.0", - "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0", - "Microsoft.AspNetCore.Server.Kestrel": "1.0.0", - "Microsoft.AspNetCore.Server.Kestrel.Https": "1.0.0", - "Microsoft.AspNetCore.StaticFiles": "1.0.0", - "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0", - "Microsoft.Extensions.Configuration.FileExtensions": "1.0.0", - "Microsoft.Extensions.Configuration.Json": "1.0.0", - "Microsoft.Extensions.Logging": "1.0.0", - "Microsoft.Extensions.Logging.Console": "1.0.0", - "Microsoft.Extensions.Logging.Debug": "1.0.0", - "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", - "Microsoft.EntityFrameworkCore": "1.0.0", - "Swashbuckle.AspNetCore": "1.0.0-rc3", - "Newtonsoft.Json": "10.0.3", - "JsonSubTypes": "1.1.3" - }, - - "tools": { - "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final", - - "Microsoft.Extensions.SecretManager.Tools": { - "imports": [ - "netstandard1.6", - "portable-net45+win8+dnxcore50", - "portable-net45+win8" - ], - "version": "1.0.0-preview2-final" - } - }, - - "frameworks": { - "netcoreapp1.0": { - "imports": [ - "dotnet5.6", - "dnxcore50", - "netstandard1.6", - "portable-net452+win81" - ] - } - }, - - "buildOptions": { - "emitEntryPoint": true, - "preserveCompilationContext": true, - "xmlDoc": true, - "compile": { - "exclude": [ - "wwwroot", - "node_modules", - "bower_components" - ] - } - }, - - "runtimeOptions": { - "configProperties": { - "System.GC.Server": true - } - }, - - "publishOptions": { - "include": [ - "wwwroot", - "Views", - "Areas/**/Views", - "appsettings.json", - "web.config" - ], - "exclude": [ - "**.user", - "**.vspscc" - ] - }, - - "scripts": { - "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ] - } -}