标签: autorest

MSB3037 openapi2csclient 退出,代码为 -1

我使用 Visual Studio Add-Service-Reference 添加使用 OpenAPI 规范的服务。 添加服务参考

我输入了 swagger URL 并生成了代码。

.csproj 表示该服务已配置。 服务参考

但是,当我尝试构建时出现错误。

该向导包含链接

该服务是使用 AutoRest 生成的。我使用的是VS2022 17.2.5

完整的错误是

错误 MSB3073 命令“”C:\Users\kirst.nuget\packages\nswag.msbuild\13.0.5\build../tools/Win/NSwag.exe” openapi2csclient /className:myapicls /namespace:myapi /input:D :\dev\MyApi\UnitTestProject1\OpenAPIs\index.html /output:obj\indexClient.cs " 退出,代码为 -1。UnitTestProject1 C:\Users\kirst.nuget\packages\nswag.apidescription.client\13.0.5\build\NSwag.ApiDescription.Client.targets 28

swagger autorest openapi nswag

5
推荐指数
1
解决办法
1440
查看次数

实验警告:fs.promises API是实验性的

我是node和npm的新手,并试图了解AutoRest.

当我输入

autorest --list-available
Run Code Online (Sandbox Code Playgroud)

进入powershell ISE我得到

AutoRest code generation utility [version: 2.0.4262; node: v10.1.0]
(C) 2018 Microsoft Corporation.
https://aka.ms/autorest
autorest : (node:12580) ExperimentalWarning: The fs.promises API is experimental
At line:1 char:1
+ autorest --list-available
+ ~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: ((node:12580) Ex...is experimental:String) [], RemoteExc 
   eption
    + FullyQualifiedErrorId : NativeCommandError

 Extension Name                 Version       

 @microsoft.azure/autorest-core 2.0.4278       
 @microsoft.azure/autorest-core 2.0.4277       
 @microsoft.azure/autorest-core 2.0.4276       
 @microsoft.azure/autorest-core 2.0.4275       
 @microsoft.azure/autorest-core 2.0.4274       
 @microsoft.azure/autorest-core 2.0.4272       
 @microsoft.azure/autorest-core 2.0.4271       
 @microsoft.azure/autorest-core 2.0.4269       
 @microsoft.azure/autorest-core 2.0.4263       
 @microsoft.azure/autorest-core 2.0.4262       
Failure:
TypeError: volume[member].bind is not a function …
Run Code Online (Sandbox Code Playgroud)

npm autorest

4
推荐指数
5
解决办法
6651
查看次数

为什么Visual Studio 2017无法为Swagger Petstore生成REST API客户端?

我正在使用Swagger / OpenAPI docs / specs 在C#中生成 REST API客户端代码,但是遇到了一些问题。

最值得注意的是-当尝试使用Swagger.io Petstore示例作为起点时:

在此处输入图片说明

在VS 2017中使用VS 2017 Add > REST API client选项,我没有产生任何代码-而是显示错误:

在此处输入图片说明

生成客户端代码并将其添加到已启动的项目中
生成具有以下参数的REST API客户端代码:
REST API名称:OpenApiClientClient,基本名称空间:OpenApiClient,元数据文件路径:C:\ Users \ Marc \ AppData \ Local \ Temp \ WebToolsAutoRest \ OpenApiClientClient \ 201807162213351660 \ swagger.json
[Info] AutoRest Core 0.16.0.0
[Info]正在初始化建模器。
[Info]正在初始化建模器。
[Info]正在解析swagger json文件。
[信息]从摇头模型生成客户端模型。
[致命]生成客户端模型时出错:不支持收集格式“多”(在参数“状态”中)。
异常:尝试为REST API添加客户端时,代码生成期间发生错误
生成客户端代码并添加到项目失败
添加失败的REST API客户端

因此,如果Swagger示例应用程序不兼容-其他人将如何?(很遗憾,我尝试了其他一些方法,但均获得了相同的结果)。

怎么了 我是否缺少某些东西,我是否需要在VS 2017中添加一些额外的工具才能使其正常工作?

更新

OK,所以我现在尝试直接使用npm安装Autorest:

npm install -g autorest
Run Code Online (Sandbox Code Playgroud)

这似乎可行-没有显示错误或任何错误。

但是,尝试使用一组命令行参数甚至单独运行Autorest会导致错误:

AutoRest -CodeGenerator CSharp -Modeler Swagger 
         -Input https://petstore.swagger.io/v2/swagger.json 
         -Namespace Services.UserServiceClient …
Run Code Online (Sandbox Code Playgroud)

swagger autorest visual-studio-2017

4
推荐指数
1
解决办法
2225
查看次数

致命:所有操作都需要 OperationId。请为路径的“获取”操作添加它

我正在使用 AutoRest 从 swagger.json 生成 api 的客户端

输出是

AutoRest code generation utility [cli version: 3.0.6187; node: v10.16.3, max-memory: 8192 gb]
(C) 2018 Microsoft Corporation.
https://aka.ms/autorest
NOTE: AutoRest core version selected from configuration: ~2.0.4413.
   Loading AutoRest core      'C:\Users\kirst\.autorest\@microsoft.azure_autorest-core@2.0.4417\node_modules\@microsoft.azure\autorest-core\dist' (2.0.4417)
   Loading AutoRest extension '@microsoft.azure/autorest.csharp' (~2.3.79->2.3.82)
   Loading AutoRest extension '@microsoft.azure/autorest.modeler' (2.3.55->2.3.55)
FATAL: OperationId is required for all operations. Please add it for 'get' operation of '/api/Test' path.
FATAL: AutoRest.Core.Logging.CodeGenerationException: OperationId is required for all operations. Please add it for 'get' operation of '/api/Test' …
Run Code Online (Sandbox Code Playgroud)

c# autorest swashbuckle.aspnetcore

2
推荐指数
1
解决办法
2726
查看次数

使用 NSwag 和 AutoREST 创建一个代码客户端/扁平化控制器

我正在尝试使用 NSwag 和 Autorest 为 api 创建代码包装器。

以前我使用 Swashbuckle 来生成 swagger 文件。它生成了格式为 operationIds 的 swagger 文件actionMethod。这导致 Autorest 生成一个深度为 1 的代码客户端。所有的动作都在顶级班级。

由于各种原因,我需要将 swagger 生成更改为 NSwag。这将生成格式为 operationIds controller_actionMethod。这导致 AutoRest 创建一个复合类,该类公开带有每个控制器操作的单独类。

怎么可能

  • 更改 NSwag 生成 operationId 的方式
  • 更改 Autorest 映射 operationIds 的方式

注意:我知道我可以手动更改 swagger.json,但我希望保持一致的自动化流程来生成代码客户端。

swagger autorest nswag

1
推荐指数
1
解决办法
654
查看次数