问题标签 [autorest]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
102 浏览

c# - 自定义标头(Microsoft.AspNet.WebApi.Versioning & Swagger)的 WebApi 版本控制不为使用相同路由的端点生成 Swagger 文档

我正在尝试使用 Microsoft.AspNet.WebApi.Versioning 对我的 WebApi 端点进行版本控制。我将 [ApiVersion] 属性添加到控制器 在此处输入图像描述

我配置了 SwaggerConfig.cs 如下: 在此处输入图像描述

...

在此处输入图像描述

WebApiConfig.cs 在此处输入图像描述

其中两个端点具有相同的路由“users/all”,一个在“v1”控制器中,另一个在“v2”控制器中

一切顺利,我能够通过 POSTMAN app到达包含相同路由(用户/全部)的两个不同端点,并传递“api-version”自定义标头。

问题是,当我尝试通过 Swagger UI 执行此操作时,它无法识别 UI 中的“v2”端点,因此,我无法通过 Swagger UI 进行尝试,而且,我无法通过 AutoRest 生成“v2”端点客户端

总结:当通过自定义标头对 webapi 进行版本控制时,我无法为具有相同路由(用户/全部)的端点生成 Swagger UI 的文档或 AutoRest 客户端类。

你们能帮帮我吗?提前致谢。

0 投票
1 回答
866 浏览

azure - Autorest 生成需要 beta 包的 Client Sdk

我使用AutorestAzure Function生成 Client Sdk 。

之后,应该打包 Client Sdk 并将其推送到我们的 nuGet 提要。

这些步骤都将通过Azure DevOpsyaml的管道完成。

这在过去几个月里非常有效。但最近 Autorest 已停止照常工作。

不幸的是,autorest 会生成一个需要beta nuGet 包的项目文件。

当然,nuGet pack 无法打包具有 beta 或预发布依赖项的项目。

  • 有人对自动休息有同样的问题吗?
  • 我可以配置 autorest,而不是使用 beta 包吗?

生成的项目文件如下所示:

生成、打包和推送 Client Sdk 的管道如下所示:

nuGet 包任务失败并出现此错误

1>C:\Program Files\dotnet\sdk\5.0.102\Sdks\NuGet.Build.Tasks.Pack\build\NuGet.Build.Tasks.Pack.targets(207,5): error NU5104: A stable release of a package should not have a prerelease dependency. Either modify the version spec of dependency "Microsoft.Azure.AutoRest.CSharp [3.0.0-beta.20210205.2, )" or update the version field in the nuspec.

0 投票
1 回答
170 浏览

powershell - 有没有办法阻止 Autorest.Powershell 展平响应对象?

我的 swagger.json 文件中有一个响应对象,其中包含一个嵌套对象作为其字段之一。当我使用Autorest.Powershell为这个 API 生成客户端时,它会扁平化嵌套对象。因此,当服务返回以下响应时:

我的 Autorest.Powershell 客户端返回一个扁平对象,如下所示:

我可以使用某种配置设置来禁用此行为吗?

如果有帮助,这是我的 swagger.json 文件的相关部分:

0 投票
1 回答
233 浏览

powershell - 如何将 .nupkg 发布到 Powershell Gallery?

解决方案

归功于mklement0

这是我最终将我的bin\MyModule.0.1.0.nupkg模块发布到 PSGallery 的操作:

  1. 重命名bin\MyModule.0.1.0.nupkgbin\MyModule.0.1.0.zip
  2. 提取bin\MyModule.0.1.0.zipbin\MyModule\(提取的文件夹的名称必须与.psd1里面的文件名匹配,所以在我的例子中,现在有一个bin\MyModule\MyModule.psd1文件)。
  3. 从提取的文件夹中删除[Content_Types].xml文件(当您尝试从 PSGallery 下载和安装模块时,不删除这会导致错误,似乎是由于该文件的 2 个副本出现在结果中.nupkg)。

然后我能够运行这个命令:

它奏效了!我的模块现已发布到 PSGallery。

原帖

我有一个由Autorest.Powershell生成并打包为 .nupkg 文件的 Powershell 模块。我现在想将我的模块发布到Powershell Gallery,但不知道如何让它工作。我试过了:

应该可以将 .nupkg 文件发布到 Powershell Gallery,因为您可以从 Powershell Gallery 下载包为 .nupkg 文件。此外,Autorest 文档说明它生成的 nupkg 文件:

.nu​​pkg 的结构已创建,因此它可以作为 PSRepository 的一部分加载。此外,此包采用分发到 PSGallery 的格式。

我猜这是可能的,但我只是不知道该怎么做。任何帮助,将不胜感激

0 投票
2 回答
1785 浏览

c# - 编译 Autorest 生成的客户端时出错

使用 Swagger OpenApi 3.0 规范自动生成客户端后,我无法编译生成的客户端。我在对象ClientDiagnosticsRawRequestUriBuilderUtf8JsonRequestContent上遇到错误。

休息客户端.cs

此外,在IUtf8JsonSerializableOptional上的以下自动生成的序列化类中出现错误。

DataCreateModel.Serialization.cs

该项目使用 .net 5、autorest v3.1.0、cli v3.1.2 和 node v14.15.5。

我错过了什么?

0 投票
3 回答
537 浏览

api - 在 Visual Studio 默认选项中添加 REST API 客户端

在过去的一年里,我一直在使用由“// Microsoft (R) AutoRest Code Generator 0.16.0.0 生成的代码”生成的 rest api 客户端的同一个项目。

我曾经遵循相同的程序来重新生成它。我右键单击该项目并选择了“添加 Rest API 客户端”选项 添加休息 api 客户端

单击该选项后,这是我可以看到的默认选项

旧用户界面

我最近更新了我的 Visual Studio,当我单击相同的选项时,这是 UI,它返回 新的 UI

似乎 ADD Rest Api 客户端只是去添加服务参考菜单,它也让我可以选择使用我并不真正想要的 Nswag 工具重新生成 api。我修复了我的 VS,重新安装并仔细检查了所有扩展,我只是不明白旧菜单在哪里。有人经历过这个或知道如何解决吗?

0 投票
0 回答
51 浏览

autorest - AutoRest v3 按控制器拆分 Rest Client

在 AutoRest v2 中,默认情况下它会创建一个包含所有 Controller 操作的单个 Rest Client。

似乎在 v3 中,它为每个控制器拆分了一个新的 Rest Client。

有什么方法可以在 CLI 中设置一个选项不这样做吗?除了 --legacy

0 投票
0 回答
67 浏览

c# - 生成 Swagger/Autorest API 客户端时出现语义冲突

我已经按照这篇文章使用 autorest 生成 API 客户端库:

如何为您的 REST API 自动生成客户端

我首先在 VS2019 中执行了这个命令:

这很好用。可以看到生成成功的json文件。然后我执行了这个 autorest 命令:

发生了一堆错误,它们都是同一类型:

node.exe:错误:语义冲突:路径“/Schools/Details/{SchoolKey}”中引用的路径参数“SchoolKey”需要在路径或操作级别的每个操作中定义。(“帖子”中缺失)(路径 > /Schools/Details/{SchoolKey})

我不确定这个错误是什么意思以及如何解决它?这是我的功能:

我的控制器是这样的:

API 的终点是“/Schools/Details/12345”

那么我需要改变我的功能/控制器以使自动休息工作吗?

谢谢!

0 投票
1 回答
158 浏览

c# - 为什么 autorest 用 Swagger 中的对象替换我的自定义结构?

我创建了一个自定义readonly struct来定义我称之为的不可变值类型TenantId

我还定义了一个名为的合同PurchaseContract,它是 HTTP 响应的一部分:

最后,我设置了一个 HTTP 触发函数,该函数将返回一个PurchaseContract. 目前,它已在以下内容中进行了描述ProducesResponseTypeAttribute

在我的Startup课堂上,我正在设置这样的招摇:

在 swagger UI 页面中,我可以看到它看起来不错:

招摇页面

问题

使用 Autorest 创建 C# 客户端时出现意外结果。不知何故,该TenantId结构被删除并替换为object

TenantId 被删除并替换为 Object

为什么会这样,我应该怎么做才能自动生成TenantId,就像PurchaseContract在客户端一样?

细节

这是版本信息。

  • 在 netcore3.1 上运行的 Function App V3;
  • 开放API 3.0;
  • Autorest Core 3.0.6274、autorest.csharp' (~2.3.79->2.3.91) 和 autorest.modeler' (2.3.55->2.3.55);
  • NuGet 包AzureExtensions.Swashbuckle
0 投票
0 回答
88 浏览

c# - 我可以将 Azure.Core 命名空间用于非天蓝色项目吗?

我正在使用 autorest 为某些 API(用于我自己的项目)生成 c# 客户端,它可以毫无顾虑地生成我的客户端。

但是几个月前我改变了我的开发机器,需要为 autorest (3.2.3) 安装新版本。

它生成客户端,但现在它引用了这个命名空间:

我的问题:

现在 autorest 只为 azure 生成客户端?

我可以将这个新的 autorest 客户端用于 Azure 以外的任何其他云服务吗?