有没有办法让nswag的行为与swaggerhub的swagger导出相同?

问题描述 投票:0回答:1

这个答案演示了swaggerhub的行为 - 输入yaml文件中的每个操作Id都会在生成的cs文件中产生两个方法,一个具有WithHttpInfo后缀,另一个没有。

我想使用 nswag 工具而不是 swaggerhub 从 yaml 输入文件生成 cs 文件。我可以在我的项目中成功运行 nswag,因为我的 csproj 文件中有一个 OpenApiReference 元素。

但是生成的cs文件不包含任何带有 WithHttpInfo 后缀的函数。

此页面列出了nswag命令行开关,我已经尝试了所有可能看起来的开关,但无济于事。

我的问题是 - 是否有任何 nswag 命令行开关会导致它像 swaggerhub 一样生成函数对?

swagger-codegen nswag
1个回答
0
投票

在 nswag 生成的 cs 代码中,我得到了具有如下原型的函数:

public virtual async System.Threading.Tasks.Task PostPdfTemplateAsync(TemplatePdfFieldPost body, System.Threading.CancellationToken cancellationToken)

返回类型是 Task,它让我可以将此函数作为异步调用。但没有返回值。

如果我添加

/WrapResponses:true
nswag 命令行开关,那么生成的函数签名将更改为:

public virtual async System.Threading.Tasks.Task<SwaggerResponse> PostPdfTemplateAsync(TemplatePdfFieldPost body, System.Threading.CancellationToken cancellationToken)

所以现在有一个返回类型。 yaml 表明 REST 端点在其响应中设置了 Header 值,现在我可以看到该 header。

© www.soinside.com 2019 - 2024. All rights reserved.