From b69fb795737ecd9c93e605ae27097f44963cf724 Mon Sep 17 00:00:00 2001 From: Blackclaws Date: Wed, 24 Mar 2021 05:30:23 +0100 Subject: [PATCH] [csharp][aspnetcore] Enable Consumes Tag for Specs where not every operation consumes (#9039) * Change break to consumes so that all operations will be processed * Update Samples --- .../codegen/languages/AspNetCoreServerCodegen.java | 4 ++-- .../src/Org.OpenAPITools/Controllers/PetApi.cs | 5 ++++- .../src/Org.OpenAPITools/Controllers/PetApi.cs | 5 ++++- .../src/Org.OpenAPITools/Controllers/PetApi.cs | 5 ++++- .../src/Org.OpenAPITools/Controllers/StoreApi.cs | 1 + .../src/Org.OpenAPITools/Controllers/UserApi.cs | 1 + .../aspnetcore/src/Org.OpenAPITools/Controllers/PetApi.cs | 5 ++++- 7 files changed, 20 insertions(+), 6 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetCoreServerCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetCoreServerCodegen.java index 458ffb36109..a52fa88609a 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetCoreServerCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AspNetCoreServerCodegen.java @@ -453,10 +453,10 @@ public class AspNetCoreServerCodegen extends AbstractCSharpCodegen { List ops = (List) operations.get("operation"); for (CodegenOperation operation : ops) { if (operation.consumes == null) { - break; + continue; } if (operation.consumes.size() == 0) { - break; + continue; } // Build a consumes string for the operation we cannot iterate in the template as we need a ',' diff --git a/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Controllers/PetApi.cs b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Controllers/PetApi.cs index 923ebb317d6..ed7095c238e 100644 --- a/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Controllers/PetApi.cs +++ b/samples/server/petstore/aspnetcore-3.0/src/Org.OpenAPITools/Controllers/PetApi.cs @@ -169,6 +169,7 @@ namespace Org.OpenAPITools.Controllers /// Validation exception [HttpPut] [Route("/v2/pet")] + [Consumes("application/json", "application/xml")] [ValidateModelState] [SwaggerOperation("UpdatePet")] public virtual IActionResult UpdatePet([FromBody]Pet body) @@ -193,6 +194,7 @@ namespace Org.OpenAPITools.Controllers /// Invalid input [HttpPost] [Route("/v2/pet/{petId}")] + [Consumes("application/x-www-form-urlencoded")] [ValidateModelState] [SwaggerOperation("UpdatePetWithForm")] public virtual IActionResult UpdatePetWithForm([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "name")]string name, [FromForm (Name = "status")]string status) @@ -213,10 +215,11 @@ namespace Org.OpenAPITools.Controllers /// successful operation [HttpPost] [Route("/v2/pet/{petId}/uploadImage")] + [Consumes("multipart/form-data")] [ValidateModelState] [SwaggerOperation("UploadFile")] [SwaggerResponse(statusCode: 200, type: typeof(ApiResponse), description: "successful operation")] - public virtual IActionResult UploadFile([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "additionalMetadata")]string additionalMetadata, System.IO.Stream file) + public virtual IActionResult UploadFile([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "additionalMetadata")]string additionalMetadata, IFormFile file) { //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... diff --git a/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Controllers/PetApi.cs b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Controllers/PetApi.cs index 923ebb317d6..ed7095c238e 100644 --- a/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Controllers/PetApi.cs +++ b/samples/server/petstore/aspnetcore-3.1/src/Org.OpenAPITools/Controllers/PetApi.cs @@ -169,6 +169,7 @@ namespace Org.OpenAPITools.Controllers /// Validation exception [HttpPut] [Route("/v2/pet")] + [Consumes("application/json", "application/xml")] [ValidateModelState] [SwaggerOperation("UpdatePet")] public virtual IActionResult UpdatePet([FromBody]Pet body) @@ -193,6 +194,7 @@ namespace Org.OpenAPITools.Controllers /// Invalid input [HttpPost] [Route("/v2/pet/{petId}")] + [Consumes("application/x-www-form-urlencoded")] [ValidateModelState] [SwaggerOperation("UpdatePetWithForm")] public virtual IActionResult UpdatePetWithForm([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "name")]string name, [FromForm (Name = "status")]string status) @@ -213,10 +215,11 @@ namespace Org.OpenAPITools.Controllers /// successful operation [HttpPost] [Route("/v2/pet/{petId}/uploadImage")] + [Consumes("multipart/form-data")] [ValidateModelState] [SwaggerOperation("UploadFile")] [SwaggerResponse(statusCode: 200, type: typeof(ApiResponse), description: "successful operation")] - public virtual IActionResult UploadFile([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "additionalMetadata")]string additionalMetadata, System.IO.Stream file) + public virtual IActionResult UploadFile([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "additionalMetadata")]string additionalMetadata, IFormFile file) { //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... diff --git a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/PetApi.cs b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/PetApi.cs index ca7285f731c..828913b7c17 100644 --- a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/PetApi.cs +++ b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/PetApi.cs @@ -181,6 +181,7 @@ namespace Org.OpenAPITools.Controllers /// Validation exception [HttpPut] [Route("/v2/pet")] + [Consumes("application/json", "application/xml")] [ValidateModelState] [SwaggerOperation("UpdatePet")] [SwaggerResponse(statusCode: 200, type: typeof(Pet), description: "successful operation")] @@ -215,6 +216,7 @@ namespace Org.OpenAPITools.Controllers /// Invalid input [HttpPost] [Route("/v2/pet/{petId}")] + [Consumes("application/x-www-form-urlencoded")] [ValidateModelState] [SwaggerOperation("UpdatePetWithForm")] public virtual IActionResult UpdatePetWithForm([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "name")]string name, [FromForm (Name = "status")]string status) @@ -235,10 +237,11 @@ namespace Org.OpenAPITools.Controllers /// successful operation [HttpPost] [Route("/v2/pet/{petId}/uploadImage")] + [Consumes("multipart/form-data")] [ValidateModelState] [SwaggerOperation("UploadFile")] [SwaggerResponse(statusCode: 200, type: typeof(ApiResponse), description: "successful operation")] - public virtual IActionResult UploadFile([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "additionalMetadata")]string additionalMetadata, System.IO.Stream file) + public virtual IActionResult UploadFile([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "additionalMetadata")]string additionalMetadata, IFormFile file) { //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ... diff --git a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/StoreApi.cs b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/StoreApi.cs index 08c813b8e13..1b6184f555a 100644 --- a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/StoreApi.cs +++ b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/StoreApi.cs @@ -116,6 +116,7 @@ namespace Org.OpenAPITools.Controllers /// Invalid Order [HttpPost] [Route("/v2/store/order")] + [Consumes("application/json")] [ValidateModelState] [SwaggerOperation("PlaceOrder")] [SwaggerResponse(statusCode: 200, type: typeof(Order), description: "successful operation")] diff --git a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/UserApi.cs b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/UserApi.cs index b9436857201..041602ee2b5 100644 --- a/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/UserApi.cs +++ b/samples/server/petstore/aspnetcore-5.0/src/Org.OpenAPITools/Controllers/UserApi.cs @@ -201,6 +201,7 @@ namespace Org.OpenAPITools.Controllers [HttpPut] [Route("/v2/user/{username}")] [Authorize(Policy = "api_key")] + [Consumes("application/json")] [ValidateModelState] [SwaggerOperation("UpdateUser")] public virtual IActionResult UpdateUser([FromRoute (Name = "username")][Required]string username, [FromBody]User user) diff --git a/samples/server/petstore/aspnetcore/src/Org.OpenAPITools/Controllers/PetApi.cs b/samples/server/petstore/aspnetcore/src/Org.OpenAPITools/Controllers/PetApi.cs index cd49bccfe60..68722c6b4cb 100644 --- a/samples/server/petstore/aspnetcore/src/Org.OpenAPITools/Controllers/PetApi.cs +++ b/samples/server/petstore/aspnetcore/src/Org.OpenAPITools/Controllers/PetApi.cs @@ -169,6 +169,7 @@ namespace Org.OpenAPITools.Controllers /// Validation exception [HttpPut] [Route("/v2/pet")] + [Consumes("application/json", "application/xml")] [ValidateModelState] [SwaggerOperation("UpdatePet")] public virtual IActionResult UpdatePet([FromBody]Pet body) @@ -193,6 +194,7 @@ namespace Org.OpenAPITools.Controllers /// Invalid input [HttpPost] [Route("/v2/pet/{petId}")] + [Consumes("application/x-www-form-urlencoded")] [ValidateModelState] [SwaggerOperation("UpdatePetWithForm")] public virtual IActionResult UpdatePetWithForm([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "name")]string name, [FromForm (Name = "status")]string status) @@ -213,10 +215,11 @@ namespace Org.OpenAPITools.Controllers /// successful operation [HttpPost] [Route("/v2/pet/{petId}/uploadImage")] + [Consumes("multipart/form-data")] [ValidateModelState] [SwaggerOperation("UploadFile")] [SwaggerResponse(statusCode: 200, type: typeof(ApiResponse), description: "successful operation")] - public virtual IActionResult UploadFile([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "additionalMetadata")]string additionalMetadata, System.IO.Stream file) + public virtual IActionResult UploadFile([FromRoute (Name = "petId")][Required]long petId, [FromForm (Name = "additionalMetadata")]string additionalMetadata, IFormFile file) { //TODO: Uncomment the next line to return response 200 or use other options such as return this.NotFound(), return this.BadRequest(..), ...