指定Swagger接口文档中参数序列化组件为Newtonsoft.Json

.Net  5 Webapi 内置 Swagger,如果Swagger 接口文档与你接口中对象属性定义的名称或大小写不同,并且所使用 Nuget 包 "Swashbuckle.AspNetCore.SwaggerGen" 版本大于 5.0 ,那么此篇文章或许对你有用

 

原因:Nuget 包 "Swashbuckle.AspNetCore.SwaggerGen" 5.0之后的版本不再默认使用 Newtonsoft 进行序列化,详细原因Swagger GitHub Readme有解释,地址:domaindrivendev/Swashbuckle.AspNetCore: Swagger tools for documenting API's built on ASP.NET Core (github.com)

 

 

 

 

如果你需要指定Swagger 使用Newtonsoft.Json 进行序列化以使用自定义的 JsonProperty 描述你的属性实际序列化名称,那么你可以安装 

 

 Swashbuckle.AspNetCore.Newtonsoft  Nuget包来指定 Swagger 的序列化组件。

1 Package Manager : Install-Package Swashbuckle.AspNetCore.Newtonsoft -Version 6.3.0
2 CLI : dotnet add package --version 6.3.0 Swashbuckle.AspNetCore.Newtonsoft

并在服务注册处添加使用 AddSwaggerGenNewtonsoftSupport() 方法来指定其使用 Newtonsoft.Json

1 services.AddMvc();
2 
3 services.AddSwaggerGen(c =>
4 {
5     c.SwaggerDoc("v1", new OpenApiInfo { Title = "My API", Version = "v1" });
6 });
7 services.AddSwaggerGenNewtonsoftSupport(); // explicit opt-in - needs to be placed after AddSwaggerGen()

 

重新启动服务后,你会发现 Swagger 接口文档内的对象名称全部和你的代码内的 JsonProperty 属性定义的一模一样了,嘿嘿!😊

 

作者:pengxx

出处:https://www.cnblogs.com/pengxx/p/16178419.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Pengxx  阅读(492)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
点击右上角即可分享
微信分享提示