当我使用 NSwag 为 API 生成 C# 客户端时,其中 API 包括可用于多种 Http 请求类型(例如 POST、GET)的端点,客户端为每个具有相同基本名称的请求生成一个方法,并加上一个数字。
例如使用这个 API:https : //api.premiumfunding.net.au/assets/scripts/swagger/v1/swagger.json
该架构包含一个端点/contract支持GET和POST要求,以及端点/contract/{ID}支持GET,POST并DELETE请求。
生成的客户端有方法:
ContractAsync 对于没有 ID 的 GET 请求Contract2Async 对于没有 ID 的 POST 请求Contract3Async 对于带有 ID 的 GET 请求Contract4Async 用于带有 ID 的 POST 请求Contract5Async 用于带有 ID 的 DELETE 请求我希望它生成名为的方法:
GetContractAsync 对于没有 ID 的 GET 请求PostContractAsync 对于没有 ID 的 POST 请求GetContractAsync 对于带有 ID 的 …我正在尝试使用 NSwag 和 Autorest 为 api 创建代码包装器。
以前我使用 Swashbuckle 来生成 swagger 文件。它生成了格式为 operationIds 的 swagger 文件actionMethod。这导致 Autorest 生成一个深度为 1 的代码客户端。所有的动作都在顶级班级。
由于各种原因,我需要将 swagger 生成更改为 NSwag。这将生成格式为 operationIds controller_actionMethod。这导致 AutoRest 创建一个复合类,该类公开带有每个控制器操作的单独类。
怎么可能
注意:我知道我可以手动更改 swagger.json,但我希望保持一致的自动化流程来生成代码客户端。