当我使用 NSwag 为 API 生成 C# 客户端时,
其中 API 包含可与多种 Http 请求类型(例如 POST、GET)一起使用的端点
客户端为每个请求生成一个具有相同基本名称和数字的方法。
例如。使用此 API:https://api.premiumfunding.net.au/assets/scripts/swagger/v1/swagger.json https://api.premiumfunding.net.au/assets/scripts/swagger/v1/swagger.json
该架构包含一个端点/contract
支持GET
and POST
请求和端点/contract/{ID}
支持GET
, POST
and DELETE
要求。
生成的客户端有方法:
-
ContractAsync
对于没有 ID 的 GET 请求
-
Contract2Async
对于没有 ID 的 POST 请求
-
Contract3Async
对于带有 ID 的 GET 请求
-
Contract4Async
对于带有 ID 的 POST 请求
-
Contract5Async
对于带有 ID 的 DELETE 请求
我希望它生成名为:
-
GetContractAsync
对于没有 ID 的 GET 请求
-
PostContractAsync
对于没有 ID 的 POST 请求
-
GetContractAsync
对于带有 ID 的 GET 请求(方法重载)
-
PostContractAsync
对于带有 ID 的 POST 请求(方法重载)
-
DeleteContractAsync
对于带有 ID 的 DELETE 请求
目前我只是手动重命名这些方法。
是否可以配置 NSwag 来生成这些方法名称?
(或者有其他工具可以给我这个结果吗?)
您可以实现并提供自己的 IOperationNameGenerator:
https://github.com/RSuter/NSwag/blob/master/src/NSwag.CodeGeneration/OperationNameGenerators/IOperationNameGenerator.cs https://github.com/RSuter/NSwag/blob/master/src/NSwag.CodeGeneration/OperationNameGenerators/IOperationNameGenerator.cs
另一种选择是预处理规范并将“operationId”更改为“controller_operation”形式(基于 NSwag.Core 包的简单控制台应用程序)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)