c# - .net 中的 swashbuckle cli 和 nswag 中的可空引用类型
问题描述
我正在使用 dotnet swagger cli 为 ASP.NET 5.0 Web api 创建一个 swagger 定义文件,并使用 nswag 生成 C# 客户端类,但我遇到了障碍。我希望我的所有引用类型都可以为空,除非它们被标记为必需。对于我的原始字段,无论它是否可以为空,它都遵循 C# 约定,但我的引用在 swagger 定义中没有被标记为 nullable:true。
我已经尝试将序列化为 V2,但它只会使所有内容都可以为空,这也是我不想要的。
我现在正在使用以下 CLI 命令:
dotnet swagger tofile --serializeasv2 --output $(MSBuildProjectDirectory)\nswag\swagger.json project.dll v1" ConsoleToMSBuild="true" WorkingDirectory="$(OutputPath)"
解决方案
好吧,我不知道如何准确地实现您提到的行为。
API 项目中的可空属性在生成的代码中保持不变(可空)就足够了吗?
为此,您可以将其添加到您的 API 项目中
services.AddSwaggerGen(c =>
{
c.UseAllOfToExtendReferenceSchemas();
然后在 NSwag 生成器中启用以下选项: generateNullableReferenceTypes=true
.
此选项类似于 NswagStudio UI 中“DTO 类”部分中的“生成可空引用类型...”。
我认为这种方法也应该适用于 swagger cli
推荐阅读
- node.js - 在 node.js 应用程序上保持打开数据库连接是一种好习惯吗?
- assembly - 尝试打印号码时出错
- reactjs - formik表单验证不起作用reactjs
- c++ - PolyHook x64Detour 未连接到 Direct3DCreate9
- git - 使用 Nix 的 Git 时权限被拒绝(公钥)
- angular - Angular v6 - 延迟加载的路由未加载
- javascript - 当我上床睡觉时,React Modal 正在工作
- javascript - 如何在本地应用程序目录中安装 nodejs 模块?
- scrape - 从抓取的表中删除 '\n'
- python - 从文件中读取和修改行