当我使用NSwag为API生成C#客户端时, API包含可与多个Http请求类型一起使用的端点(例如POST,GET) 客户端为每个具有相同基本名称的请求生成一个方法,加上一个数字。
E.g。使用此API:https://api.premiumfunding.net.au/assets/scripts/swagger/v1/swagger.json
架构包含支持tr[bgcolor],tr[style]
和/contract
请求的端点GET
,以及支持POST
,/contract/{ID}
和GET
的端点POST
DELETE
请求。
生成的客户端有方法:
ContractAsync
表示没有ID的GET请求Contract2Async
表示没有ID的POST请求Contract3Async
用于ID为Contract4Async
用于ID为Contract5Async
用于ID为我希望它能生成名为的方法:
GetContractAsync
表示没有ID的GET请求PostContractAsync
表示没有ID的POST请求GetContractAsync
用于ID(方法重载)的GET请求PostContractAsync
用于带ID的POST请求(方法重载)DeleteContractAsync
用于ID为目前我只是手动重命名方法。
是否可以配置NSwag来生成这些方法名称?
(或者是否有替代工具会给我这个结果?)
答案 0 :(得分:2)
您可以实现并提供自己的IOperationNameGenerator:
另一种选择是预处理规范并将“operationId”更改为“controller_operation”形式(基于NSwag.Core包的简单控制台应用程序)