指定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 国际」许可协议进行许可。
本文来自博客园,作者:Pengxx,转载请注明原文链接:https://www.cnblogs.com/pengxx/p/16178419.html
“先从0到1,再从1到100”
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
· AI Agent开发,如何调用三方的API Function,是通过提示词来发起调用的吗