.net core webapi 配置
返回首字母小写的驼峰命名
Nuget 下载
Microsoft.AspNetCore.Mvc.NewtonsoftJson
1 builder.Services.AddControllers(mvcOptions => 2 { 3 //配置如果请求格式不接受 返回406比如 4 //现在我只配置了application/xml 和 application/json 5 //那么如果请求要返回格式为text/json 就报406 6 mvcOptions.ReturnHttpNotAcceptable = true; 7 }) 8 .AddXmlDataContractSerializerFormatters()// 配置返回xml 9 .AddNewtonsoftJson(options => 10 { 11 //配置返回 首字母小写的驼峰命名 12 options.SerializerSettings.ContractResolver = 13 new CamelCasePropertyNamesContractResolver(); 14 });
测试
如果请求的响应 medis type 为application/xml 或者 application/json 结果是什么 看到结果是成功的说明配置起到效果了
配置数据注解报错返回格式
1 builder.Services.AddControllers(mvcOptions => 2 { 3 //配置如果请求格式不接受 返回406比如 4 //现在我只配置了application/xml 和 application/json 5 //那么如果请求要返回格式为text/json 就报406 6 mvcOptions.ReturnHttpNotAcceptable = true; 7 }) 8 .AddXmlDataContractSerializerFormatters()// 配置返回xml 9 .AddNewtonsoftJson(options => 10 { 11 //配置返回 首字母小写的驼峰命名 12 options.SerializerSettings.ContractResolver = 13 new CamelCasePropertyNamesContractResolver(); 14 }).ConfigureApiBehaviorOptions(setupAction => 15 { 16 setupAction.InvalidModelStateResponseFactory = context => 17 { 18 var problemDetail = new ValidationProblemDetails(context.ModelState) 19 { 20 Type = "无所谓", 21 Title = "数据验证失败", 22 Status = StatusCodes.Status422UnprocessableEntity, 23 Detail = "请看详细说明", 24 Instance = context.HttpContext.Request.Path 25 }; 26 problemDetail.Extensions.Add("traceId", context.HttpContext.TraceIdentifier); 27 return new UnprocessableEntityObjectResult(problemDetail) 28 { 29 ContentTypes = { "application/problem+json" } 30 }; 31 }; 32 33 });
测试