我正在尝试使用 Swagger / OpenAPI docs/specs 在 C# 中生成REST API 客户端代码,但我遇到了几个问题。
最值得注意的是 - 当尝试使用 Swagger.io Petstore 示例作为起点时:
在 VS 2017 中使用 VS 2017Add > REST API client
选项,我没有生成任何代码 - 而是显示错误:
生成客户端代码并添加到已启动的项目
使用以下参数为 REST API 生成客户端代码:
REST API 名称:OpenApiClientClient,基本命名空间:OpenApiClient,元数据文件路径:C:\Users\Marc\AppData\Local\Temp\WebToolsAutoRest\OpenApiClientClient\ 201807162213351660\swagger.json
[信息]AutoRest Core 0.16.0.0
[信息]初始化建模器。
[信息]初始化建模器。
[信息]解析 swagger json 文件。
[信息]从 swagger 模型生成客户端模型。
[致命]生成客户端模型时出错:不支持集合格式“multi”(在参数“status”中)。
异常:尝试为 REST API 添加客户端时,代码生成期间出错
生成客户端代码并添加到项目失败
添加 REST API 客户端失败
因此,如果 Swagger 示例应用程序不兼容 - 其他人会如何?(不幸的是,我尝试了其他几个,结果都一样)。
这里有什么问题?我是否遗漏了什么,我是否需要向 VS 2017 添加一些额外的工具才能完成这项工作?
更新:
好的,所以我现在尝试直接使用 npm 安装 Autorest:
npm install -g autorest
这似乎工作 - 没有显示错误或任何东西。
但是尝试运行 Autorest - 使用一组命令行参数,甚至只是单独运行 - 会导致错误:
AutoRest -CodeGenerator CSharp -Modeler Swagger
-Input https://petstore.swagger.io/v2/swagger.json
-Namespace Services.UserServiceClient -OutputDirectory d:\projects
-AddCrendentials true
要不就
AutoRest <kbd>Enter</kbd>
结果是:
AutoRest 代码生成实用程序 [版本:2.0.4280;节点:v9.9.0]
(C) 2018 Microsoft Corporation。
https://aka.ms/autorest
失败:
错误:无法从 C:\Users\Marc.autorest\@microsoft.azure_autorest-core@2.0.4280\node_modules\@microsoft.azure\autorest-core 启动 AutoRest Core
错误: 无法从 C:\Users\Marc.autorest\@microsoft.azure_autorest-core@2.0.4280\node_modules\@microsoft.azure\autorest-core
在 main (C:\Users\Marc\AppData\Roaming \npm\node_modules\autorest \dist\app.js:232:19) 在
还有什么想法吗?