如何在使用 NSwag 生成的客户端方法名称中包含 Http 请求方法名称
How to include Http request method name in client method names generated with NSwag
当我使用 NSwag 为 API 生成 C# 客户端时,
其中 API 包括可用于多种 Http 请求类型的端点(例如 POST、GET)
客户端为每个具有相同基本名称的请求生成一个方法,加上一个数字。
例如使用这个 API:https://api.premiumfunding.net.au/assets/scripts/swagger/v1/swagger.json
架构包含一个支持 GET
和 POST
请求的端点 /contract
,以及一个支持 GET
、[=12= 的端点 /contract/{ID}
] 和 DELETE
个请求。
生成的客户端有方法:
ContractAsync
对于没有 ID 的 GET 请求
Contract2Async
对于 POST 没有 ID 的请求
Contract3Async
对于 ID 为 的 GET 请求
Contract4Async
对于 POST ID 的请求
Contract5Async
对于 ID 为 的 DELETE 请求
我希望它生成名为的方法:
GetContractAsync
对于没有 ID 的 GET 请求
PostContractAsync
对于 POST 没有 ID 的请求
GetContractAsync
对于带有 ID 的 GET 请求(方法重载)
PostContractAsync
对于 ID 为 POST 的请求(方法重载)
DeleteContractAsync
对于 ID 为 的 DELETE 请求
目前我只是手动重命名方法。
是否可以配置 NSwag 来生成这些方法名称?
(或者是否有替代工具可以给我这个结果?)
您可以实施并提供自己的 IOperationNameGenerator:
另一种选择是预处理规范并将“operationId”更改为“controller_operation”形式(基于NSwag.Core包的简单控制台应用程序)
当我使用 NSwag 为 API 生成 C# 客户端时, 其中 API 包括可用于多种 Http 请求类型的端点(例如 POST、GET) 客户端为每个具有相同基本名称的请求生成一个方法,加上一个数字。
例如使用这个 API:https://api.premiumfunding.net.au/assets/scripts/swagger/v1/swagger.json
架构包含一个支持 GET
和 POST
请求的端点 /contract
,以及一个支持 GET
、[=12= 的端点 /contract/{ID}
] 和 DELETE
个请求。
生成的客户端有方法:
ContractAsync
对于没有 ID 的 GET 请求Contract2Async
对于 POST 没有 ID 的请求Contract3Async
对于 ID 为 的 GET 请求
Contract4Async
对于 POST ID 的请求
Contract5Async
对于 ID 为 的 DELETE 请求
我希望它生成名为的方法:
GetContractAsync
对于没有 ID 的 GET 请求PostContractAsync
对于 POST 没有 ID 的请求GetContractAsync
对于带有 ID 的 GET 请求(方法重载)PostContractAsync
对于 ID 为 POST 的请求(方法重载)DeleteContractAsync
对于 ID 为 的 DELETE 请求
目前我只是手动重命名方法。
是否可以配置 NSwag 来生成这些方法名称?
(或者是否有替代工具可以给我这个结果?)
您可以实施并提供自己的 IOperationNameGenerator:
另一种选择是预处理规范并将“operationId”更改为“controller_operation”形式(基于NSwag.Core包的简单控制台应用程序)