繁体   English   中英

如何在使用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

该架构包含端点/contract支持GETPOST请求,并且端点/contract/{ID}支持GETPOSTDELETE请求。

生成的客户端有方法:

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

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

  • 没有ID的GET请求的GetContractAsync
  • PostContractAsync用于没有ID的POST请求
  • 具有ID的GET请求的GetContractAsync (方法重载)
  • 具有ID的POST请求的PostContractAsync (方法重载)
  • 具有ID的DELETE请求的DeleteContractAsync

目前我只是手动重命名方法。

是否可以配置NSwag来生成这些方法名称?

(或者是否有替代工具会给我这个结果?)

您可以实现并提供自己的IOperationNameGenerator:

https://github.com/RSuter/NSwag/blob/master/src/NSwag.CodeGeneration/OperationNameGenerators/IOperationNameGenerator.cs

另一种选择是预处理规范并将“operationId”更改为“controller_operation”形式(基于NSwag.Core包的简单控制台应用程序)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM