【发布时间】:2020-10-21 21:28:10
【问题描述】:
我使用 NSwagStudio 为 a.Net Core 3.1 API 生成一个 Angular 客户端。 API 包括可用于多种 Http 请求类型(例如 POST、GET)的端点。 客户端为每个请求生成一个具有相同基本名称的方法,外加一个数字。
架构包含一个端点 /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 请求
等
问题的答案是“实现并提供自己的 IOperationNameGenerator” 见https://stackoverflow.com/a/49935417/4180382
我不知道如何实现和提供这个 IOperationNameGenerator。
“通过反射的 Web Api”选项卡包含几个自定义实现,但未提及“IOOperationNameGenerator”
如何实现 IOperationNameGenerator?
【问题讨论】:
-
你找到了吗?
-
@gerb0n 不,我没有!
-
我也不知道如何提供自定义
IOperationNameGenerator,但我能够使用IOperationProcessor中所述的IOperationProcessor更改生成的OperationID,从而更改生成的客户端方法名称this answer.
标签: angular asp.net-core nswagstudio