问题标签 [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 投票
1 回答
374 浏览

c# - AutoRest Generated API Client Azure API Service 没有抛出错误

我们使用 Swashbuckle 从我们的 api 服务生成 swagger,然后使用 Visual Studio 中的 ADD Azure API Client 函数生成一个 API 客户端。除了服务器遇到问题并引发错误的情况外,此客户端工作正常。此服务器错误导致客户端继续等待并且永远不会返回错误,因此不会触发错误。同步和异步调用都会发生这种情况。

抛出错误的唯一方法是将超时设置为很短的时间,在这种情况下会抛出 Task Canceled 异常。

当我们生成 JavaScript 客户端时,不会出现此问题,客户端将完美运行。

有人对我们能做什么有任何建议吗?

0 投票
2 回答
306 浏览

c# - 为什么 AutoRest 会生成名为 UnknownType 的客户端

我试图为其生成 ac# 客户端的招摇文件位于: https ://gist.github.com/s093294/a98d53c961e40b0fa3d8

但由于某种原因,即使它设置了 info.title,生成的客户端也被命名为 Unknowntype

谁能解释一下?

0 投票
2 回答
329 浏览

c# - 使用 Gulp 任务生成 AutoRest 代码

我们使用 AutoRest 从 swagger 文件中生成 C# 类。目前我们手动运行以下命令:

AutoRest.exe -Input [-Namespace] [-OutputDirectory] ​​[-CodeGenerator] [-Modeler] [-ClientName] [-OutputFileName]

手动方法的问题是每个开发人员都需要确保传递正确的参数等。

想知道是否有人成功地创建了一个 gulp 任务以在上面自动化,以便可以从 VS Task Runner 运行该任务。

0 投票
2 回答
2296 浏览

c# - 使用 Swagger 命名 AutoRest 生成的方法名称

我在玩AutoRestSwagger项目。我的 Web API 控制器有一个名为GetAllAsync. 当我为服务生成客户端时,客户端有一个 interface IResourcesOperations,其中Resources是控制器的名称。

该接口有一个名为 的方法GetAllAsyncWithHttpMessagesAsync。然后是一个名为的静态类ResourcesOperationsExtensions,它定义了一个名为的方法GetAllAsync和一个名为的方法GetAllAsyncAsync。第一个实际上从线程池 ( Task.Factory.StartNew) 中运行第二个新线程。有谁知道这是什么原因?

我发现我可以用属性装饰我的控制器操作方法

这将在调用的客户端类上生成一个方法,GetResourcesWithHttpMessagesAsync并从接口和扩展方法类中删除此 Web API 操作的所有方法。

现在我的问题是,为什么默认生成这三种方法?

有没有办法用一个名为的方法GetResources(即去掉那个 WithHttpMessagesAsync 后缀)甚至生成一个客户端GetAllAsync

0 投票
0 回答
772 浏览

rest - 服务器 REST API 更改后如何更新生成的 AutoRest 代码?

语境

我正在编写客户端代码来访问 Web API REST 服务。我通过使用 Visual Studio 2015“添加”/“REST API 客户端...”来使用类型化客户端类

现在服务器端 API 发生了变化,我想相应地更新我生成的客户端代码。

问题

除了删除所有生成的类的明显解决方案,然后从零开始 Visual Studio 2015“添加”/“REST API 客户端......”,还有更好的方法吗?

0 投票
2 回答
192 浏览

autorest - Autorest客户端生成newtonsoft的多个引用

目前,我正在尝试在每次发布新 api 时构建一个自动生成的客户端。

我已经运行了它,我可以创建项目并从 autorest.exe 生成文件,并且在我的机器上一切正常。

但是,当我尝试在构建服务器上复制相同的过程时,我构建了我的 sln,并且一旦我打包我得到这个错误:

[pack] 'Microsoft.Rest.ClientRuntime' already has a dependency defined for 'Newtonsoft.Json'.

我已将此添加到我的 csproj 文件中以获取生成的文件,这在我的本地计算机上运行良好。

我也尝试像这样在构建服务器上包含引用的项目

几天后我有点卡在这里,我一直无法找到有关如何实际构建自动生成客户端代码的文档,如果有人知道一些请分享:)

任何帮助表示赞赏:)

0 投票
1 回答
1114 浏览

c# - 将 Iso8601TimeSpanConverter 添加到 JsonConverter 列表会引发 ArrayTypeMismatch 异常

我正在使用 AutoRest 从 Swagger 定义文件中为 REST API 自动生成 ac# 类。

问题是在执行客户端类初始化方法时,它会在以下代码中抛出 ArrayTypeMismatch 异常:

有问题的代码是添加到 JsonConverters 列表中的 Iso8601TimeSpanConverter。

顺便说一句,这只发生在在 VSIX 包中运行此代码时。在独立应用程序上,它运行良好。

我想知道它是否与多个版本的 Newtonsoft.Json 加载和碰撞有关?

有任何想法吗?

0 投票
0 回答
363 浏览

swagger - 大摇大摆地处理来自 REST API 的状态代码

我开发了一个带有 Swagger 注释的 REST API。当 API 无法处理调用时,它会在正文中返回 4xx 状态代码和错误消息。Swagger 抛出一个包含请求和响应但响应不包含其主体的异常。因此客户端无法访问错误消息。

我知道我可以使用注释来防止像 4xx 这样的状态代码生成异常,但我想知道是否有办法仍然抛出异常并保留正文。

我正在使用 AutoRest 生成客户端代码。

0 投票
1 回答
2080 浏览

c# - 来自 Swagger 文档的 AutoRest - IEnumerable生成为 IEnumerable

我有一个使用 ASP.NET MVC 5、Swashbuckle 和 AutoRest 的项目。当我使用 Autorest 为我的 API 生成客户端时,我的参数正在从一个转换IEnumerable<long>IEnumerable<long?>

控制器方法

生成的 AutoRest 签名

我试过的

  • 使用获取方法。导致“多”类型,这是 AutoRest 中的已知错误 AutoRest中的已知错误。
  • 消除 [FromBody] 属性
  • 将 IEnumerable 包装在自定义模型中

这是一个奇怪的错误,但我已经使用 Swagger 和 Autorest 有一段时间了,所以我只能假设它要么是一个不起眼的错误/配置(可能),要么我错过了一些愚蠢的东西(可能)。提前感谢您的帮助。

更新

这是 Swashbuckle 生成的 Swagger Spec

0 投票
2 回答
1235 浏览

c# - 如何让 AutoRest 通过控制器拆分 API

现在我正在使用:

生成我的ASP.NET Core Rest Client.

令人烦恼的是,它为所有这些AutoRest创建了一个单一的。我用过将每个拆分成自己的,有没有办法强制这种行为?file/classcontrollersAPIpre-ASP.NET Core auto-generatorscontrollerfile/classAutoRest