首页 > 解决方案 > Swagger UI 显示 camelCase 参数而不是 PascalCase

问题描述

我在 Asp.Net Core 3.1 API 中使用 NewtonSoft.json 和 Swashbuckle.AspNetCore 版本 5.3.3。

默认情况下,在 Asp.Net Web API 中,2 个输入和输出参数大小写为 PascalCase。

现在我正在迁移到默认情况下为 camelCase 的 .Net Core API。

所以我通过在 Startup.cs 中添加以下代码将其更改为使用 PascalCase:

services.AddControllers()
            .ConfigureApiBehaviorOptions(options =>
            {
                options.SuppressModelStateInvalidFilter = true;
            })
            .AddNewtonsoftJson(options =>
            {
                // Use the default property (Pascal) casing
                options.SerializerSettings.ContractResolver = new DefaultContractResolver();
            });//Configure Newtonsoft as JSON serializer.

但在 Swagger UI 中,它以 camelCase 格式显示输入和输出参数,而 API 的响应包含 PascalCase 格式的值。

我用谷歌搜索,但在 AddSwaggerGen DescribeAllParametersInCamelCase() 中找到了一个方法,它将所有参数转换为 camelCase。

有 DescribeAllParametersInPascalCase() 方法吗?

如何配置 Swagger/Swashbuckle 以在 PascalCase 中显示输入/输出参数?

这是一个例子:

在此处输入图像描述

标签: asp.net-coreswaggerasp.net-core-webapiswashbuckleswashbuckle.aspnetcore

解决方案


您可以像这样配置 JsonSerializerOptions:

.AddJsonOptions(opt => opt.JsonSerializerOptions.PropertyNamingPolicy = null)

推荐阅读