.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 });

 

 测试

 

posted on 2023-04-22 21:45  是水饺不是水饺  阅读(34)  评论(0)    收藏  举报

导航