json.net - Swagger Gen 中的 Force Camel 大小写参数

标签 json.net .net-6.0 swagger-codegen swashbuckle.aspnetcore

问题:

我有 Rest Endpoint,路由参数看起来像这样

    [HttpDelete("{id}")]
    public async Task<IActionResult> DeleteDocument([FromRoute] DeleteDocumentRequest request)

“DeleteDocumentRequest”有一个gettor/settor

    public Guid Id {get; set;}

但是,当 swagger gen 将其序列化到 OpenApi 3.0 时,它会产生错误,因为类中的属性“Id”的大小写与路由中的属性“id”不匹配。

问题:

我如何重写序列化程序以将我的所有属性更改为驼峰式命名以确保一致性?

在 .NET 6 中使用 Newtonsoft Json,我尝试使用 CamelCasePropertyNamesContractResolver 以及 ResolvePropertyName 和 CreateProperties 的覆盖,但 Controller 端点中的参数不是被命中的“属性”。

最佳答案

我能够通过将以下内容添加到 Swagger Gen 设置中来解决它。感谢@jspcal 提供相关问题的链接。

services.AddSwaggerGen(c =>
            {
                c.DescribeAllParametersInCamelCase();
            });

关于json.net - Swagger Gen 中的 Force Camel 大小写参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72307923/

相关文章:

.net - JSON 序列化需要很长时间

c# - HealthChecks.UI.SqlServer.Storage 迁移问题

node.js - 使用生成的 [nodejs-server] 代码 (SWAGGER) 的 CORS 问题

java - Swagger codegen to Java Spring 从二进制格式的 OpenAPI 组件生成不正确的文件响应实体

c# - Flurl 的 PostUrlEncodedAsync 忽略 JsonProperty 名称

c# - JsonConvert.DeserializeObject<Da​​taSet> 中的错误

c# - Newtonsoft JSON 动态属性名称

jquery - .Net 6 中的 Asp.net Core 中的 Ajax Post 在 Action 方法中不起作用

c# - Asp.Net 核心 6 session key

resttemplate - Swagger 客户端代码生成不包含可选方法