.net中swashbuckle cli和nswag中的可空引用类型



我正在使用dotnet swagger cli为ASP创建一个swagger定义文件。NET 5.0 web api,并使用nswag生成c#客户端类,但我遇到了一个障碍。我希望所有的引用类型都是可空的,除非它们被标记为Required。对于我的原始字段,它只是遵循c#的约定,无论它是否为空,但我的引用没有在swagger定义中标记为nullable:true。

我已经尝试序列化为V2,但它只会使所有内容都可为空,这也是我不想要的。

我现在正在使用下面的CLI命令:

dotnet swagger tofile --serializeasv2 --output $(MSBuildProjectDirectory)nswagswagger.json project.dll v1" ConsoleToMSBuild="true" WorkingDirectory="$(OutputPath)"

嗯,我不知道如何实现你提到的行为。
在生成的代码中是否足以在API项目中保持相同(可空)的可空属性?

要做到这一点,你可以把它添加到你的API项目
services.AddSwaggerGen(c =>
{
c.UseAllOfToExtendReferenceSchemas();

,然后在NSwag生成器中启用以下选项:generateNullableReferenceTypes=true.

这个选项看起来像"生成可空的引用类型…"在"DTO类"中

我认为这种方法也应该适用于swagger cli

最新更新