相关疑难解决方法(0)

如何在使用 NSwag 生成的客户端方法名称中包含 Http 请求方法名称

当我使用 NSwag 为 API 生成 C# 客户端时,其中 API 包括可用于多种 Http 请求类型(例如 POST、GET)的端点,客户端为每个具有相同基本名称的请求生成一个方法,并加上一个数字。

例如使用这个 API:https : //api.premiumfunding.net.au/assets/scripts/swagger/v1/swagger.json

该架构包含一个端点/contract支持GETPOST要求,以及端点/contract/{ID}支持GETPOSTDELETE请求。

生成的客户端有方法:

  • ContractAsync 对于没有 ID 的 GET 请求
  • Contract2Async 对于没有 ID 的 POST 请求
  • Contract3Async 对于带有 ID 的 GET 请求
  • Contract4Async 用于带有 ID 的 POST 请求
  • Contract5Async 用于带有 ID 的 DELETE 请求

我希望它生成名为的方法:

  • GetContractAsync 对于没有 ID 的 GET 请求
  • PostContractAsync 对于没有 ID 的 POST 请求
  • GetContractAsync 对于带有 ID 的 …

c# openapi nswag

12
推荐指数
1
解决办法
2179
查看次数

使用 NSwag 和 AutoREST 创建一个代码客户端/扁平化控制器

我正在尝试使用 NSwag 和 Autorest 为 api 创建代码包装器。

以前我使用 Swashbuckle 来生成 swagger 文件。它生成了格式为 operationIds 的 swagger 文件actionMethod。这导致 Autorest 生成一个深度为 1 的代码客户端。所有的动作都在顶级班级。

由于各种原因,我需要将 swagger 生成更改为 NSwag。这将生成格式为 operationIds controller_actionMethod。这导致 AutoRest 创建一个复合类,该类公开带有每个控制器操作的单独类。

怎么可能

  • 更改 NSwag 生成 operationId 的方式
  • 更改 Autorest 映射 operationIds 的方式

注意:我知道我可以手动更改 swagger.json,但我希望保持一致的自动化流程来生成代码客户端。

swagger autorest nswag

1
推荐指数
1
解决办法
654
查看次数

标签 统计

nswag ×2

autorest ×1

c# ×1

openapi ×1

swagger ×1