Search code examples
asp.net-coreswaggerasp.net-core-webapiswashbuckleswashbuckle.aspnetcore

Swagger UI shows camelCase parameters instead of PascalCase


I am using NewtonSoft.json in Asp.Net Core 3.1 API with Swashbuckle.AspNetCore version 5.3.3.

By default in Asp.Net Web API, 2 input and output parameter case was PascalCase.

Now I am migrating to .Net Core API in which default case is camelCase.

So I changed it to use PascalCase by adding below code in Startup.cs:

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.

But in the Swagger UI, it is showing input and output parameters in camelCase while the API's response contains values in PascalCase.

I Googled but found a method in AddSwaggerGen DescribeAllParametersInCamelCase() which turns all the parameters into camelCase.

Is there DescribeAllParametersInPascalCase() method?

How can I configure Swagger/Swashbuckle to show input/output parameters in PascalCase?

Here's an example:

enter image description here


Solution

  • You can configure the JsonSerializerOptions like this:

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

    Example:

    var builder = WebApplication.CreateBuilder(args);
    
    builder.Services.AddControllers()
    .AddJsonOptions(opt => opt.JsonSerializerOptions.PropertyNamingPolicy = null);