Swashbuckle.AspNetCore
Swashbuckle.AspNetCore copied to clipboard
6.1.5 error on PUT/POST routes
Hi,
On any routes that expect a body (PUT, POST) I get the following error starting with 6.1.5:
System.ArgumentException: The argument 'name' is null, empty or consists only of white-space. (Parameter 'name') at Microsoft.OpenApi.Writers.OpenApiWriterBase.VerifyCanWritePropertyName(String name) at Microsoft.OpenApi.Writers.OpenApiJsonWriter.WritePropertyName(String name) at Microsoft.OpenApi.Writers.OpenApiWriterAnyExtensions.WriteObject(IOpenApiWriter writer, OpenApiObject entity) at Microsoft.OpenApi.Writers.OpenApiWriterAnyExtensions.WriteAny[T](IOpenApiWriter writer, T any) at Microsoft.OpenApi.Writers.OpenApiWriterAnyExtensions.WriteObject(IOpenApiWriter writer, OpenApiObject entity) at Microsoft.OpenApi.Writers.OpenApiWriterAnyExtensions.WriteAny[T](IOpenApiWriter writer, T any) at Microsoft.OpenApi.Models.OpenApiSchema.<>c.<SerializeAsV3WithoutReference>b__157_13(IOpenApiWriter w, IOpenApiAny e) at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteRequiredObject[T](IOpenApiWriter writer, String name, T value, Action
2 action)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteOptionalObject[T](IOpenApiWriter writer, String name, T value, Action2 action) at Microsoft.OpenApi.Models.OpenApiSchema.SerializeAsV3WithoutReference(IOpenApiWriter writer) at Microsoft.OpenApi.Models.OpenApiSchema.SerializeAsV3(IOpenApiWriter writer) at Microsoft.OpenApi.Models.OpenApiComponents.<>c.<SerializeAsV3>b__40_0(IOpenApiWriter w, String key, OpenApiSchema component) at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteMapInternal[T](IOpenApiWriter writer, String name, IDictionary
2 elements, Action3 action) at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteOptionalMap[T](IOpenApiWriter writer, String name, IDictionary
2 elements, Action3 action) at Microsoft.OpenApi.Models.OpenApiComponents.SerializeAsV3(IOpenApiWriter writer) at Microsoft.OpenApi.Models.OpenApiDocument.<>c.<SerializeAsV3>b__32_3(IOpenApiWriter w, OpenApiComponents c) at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteRequiredObject[T](IOpenApiWriter writer, String name, T value, Action
2 action)
at Microsoft.OpenApi.Writers.OpenApiWriterExtensions.WriteOptionalObject[T](IOpenApiWriter writer, String name, T value, Action2 action) at Microsoft.OpenApi.Models.OpenApiDocument.SerializeAsV3(IOpenApiWriter writer) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.RespondWithSwaggerJson(HttpResponse response, OpenApiDocument swagger) at Swashbuckle.AspNetCore.Swagger.SwaggerMiddleware.Invoke(HttpContext httpContext, ISwaggerProvider swaggerProvider)
For example on:
[HttpPut("{key}")] [Consumes(JsonMediaTypeHeaderValues.ApplicationJsonMediaType)] [Produces(JsonMediaTypeHeaderValues.ApplicationJsonMediaType)] [SwaggerOperation( OperationId = "upsert", Description = "Either update or insert a key/value pair.")] public async Task<IActionResult> Put([SwaggerParameter(Description ="Key for the value update", Required = true)] string key, [FromBody(EmptyBodyBehavior = EmptyBodyBehavior.Disallow), SwaggerRequestBody("The value payload", Required = true)] string value, CancellationToken cancellationToken) { return Ok(); }
It works fine under 6.1.4. Is there a breaking change in 6.1.5?