【问题标题】:Nullable reference types in swashbuckle cli and nswag in .net.net 中的 swashbuckle cli 和 nswag 中的可空引用类型
【发布时间】:2021-11-04 02:26:27
【问题描述】:

我正在使用 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)"

【问题讨论】:

  • 你能举一个你用过的swagger cli命令的例子吗?
  • @AndrewSilver 更新帖子
  • > 我希望我的所有引用类型都可以为空,除非它们被标记为必需。请问为什么?

标签: c# asp.net-core swagger swashbuckle nswag


【解决方案1】:

嗯,我不知道如何实现你提到的行为。
API 项目中的可空属性在生成的代码中保持不变(可空)就足够了吗?

为此,您可以将其添加到您的 API 项目中

services.AddSwaggerGen(c =>
{
    c.UseAllOfToExtendReferenceSchemas();

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

此选项类似于 NswagStudio UI 中“DTO 类”部分中的“生成可空引用类型...”。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-03
    • 1970-01-01
    • 1970-01-01
    • 2023-04-06
    • 2019-08-26
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多