【发布时间】:2021-03-28 09:19:06
【问题描述】:
我正在尝试从 Ambari 生成的 Swagger json 文件创建一个 Rest API 客户端。不幸的是,json 在项目名称中使用了 #:
"get": {
"tags": [ "Actions" ],
"summary": "Get all action definitions",
"description": "",
"operationId": "ActionService#getActionDefinitions", <<<<<
"produces": [ "text/plain" ],
我尝试过 AutoRest、Nswag、Swagger 和 Open API Rest API Client Generators。 Nswag 是唯一不会崩溃和燃烧的。 但是它的输出是不可用的,因为 '#' 字符最终出现在 c# 名称中。
为编译器指令保留。
我最终会得到类似...无法使用的行:
System.Threading.Tasks.Task<System.Collections.Generic.ICollection<ActionResponseSwagger>> ActionService#getActionDefinitionsAsync(string fields, string sortBy, int? page_size, string from, string to);
这个问题有解决办法吗?
【问题讨论】:
-
在生成客户端代码之前,您可以执行搜索替换(使用文本/正则表达式搜索或 OpenAPI 解析器)以从 API 定义中的 operationIds 中删除
#。还可以考虑打开上述项目的问题,以改进 operationIds 中特殊字符的处理。
标签: c# visual-studio swagger nswag