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:
You can configure the JsonSerializerOptions like this:
.AddJsonOptions(opt => opt.JsonSerializerOptions.PropertyNamingPolicy = null)
If you are still using Newtonsoft.Json
in Asp.Net Core 3.1 instead of the new defualt System.Text.Json
.
Once you configure Newtonsoft for Asp.Net Core 3.1 by:
services.AddControllers().AddNewtonsoftJson(x => {
// My config is Pascal Case
x.SerializerSettings.ContractResolver = new DefaultContractResolver();
});
You need to also install Swashbuckle.AspNetCore.Newtonsoft
and opt in by adding the following after services.AddSwaggerGen(...
:
services.AddSwaggerGenNewtonsoftSupport();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With