Ole*_*our 3 asp.net-core angular nswagstudio
我使用 NSwagStudio 为 .Net Core 3.1 API 生成 Angular 客户端。该API 包括可与多种Http 请求类型(例如POST、GET)一起使用的端点。客户端为每个请求生成一个具有相同基本名称和数字的方法。
该架构包含一个/contract支持GET和POSTrequests 的端点,以及一个/contract/{ID}支持GET和requestsPOST的端点DELETE。
生成的客户端具有以下方法:
ContractAsync对于没有 ID 的 GET 请求Contract2Async对于没有 ID 的 POST 请求Contract3Async对于带有 ID 的 GET 请求Contract4Async对于带有 ID 的 POST 请求Contract5Async对于带有 ID 的 DELETE 请求我希望它生成名为:
GetContractAsync对于没有 ID 的 GET 请求PostContractAsync对于没有 ID 的 POST 请求ETC
问题的答案是“实现并提供自己的 IOperationNameGenerator”请参阅/sf/answers/3495479221/
我不知道如何实现和提供这个 IOperationNameGenerator。
“通过反射的 Web Api”选项卡包含多个自定义实现,但未提及“IOperationNameGenerator”
如何实现 IOperationNameGenerator?
在您的 Startup.cs 中执行以下操作:
services.AddSwaggerGen(c =>
{
...
c.CustomOperationIds(d => d.ActionDescriptor is ControllerActionDescriptor controllerActionDescriptor
? controllerActionDescriptor.MethodInfo.Name
: d.ActionDescriptor.AttributeRouteInfo?.Name);
});
Run Code Online (Sandbox Code Playgroud)
同样也可以通过设置c.SwaggerGeneratorOptions.OperationIdSelector
请注意,这是我在此处的ActionDescriptor.AttributeRouteInfo?.Name源代码中使用的默认值
| 归档时间: |
|
| 查看次数: |
1444 次 |
| 最近记录: |