问题标签 [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 回答
86 浏览

c# - 带有 AutoRest 生成的 C# ServiceClient 的 NDJSON 流

使用 AutoRest,我通过流式传输 NDJSON 事件为支持长轮询类型操作的服务生成了 C# ServiceClient。

服务的 swagger 文档produces在路径中定义了一个元素:

AutoRest 配置中是否有任何内容可以生成支持这种流式传输行为的客户端?

0 投票
3 回答
1399 浏览

azure - Autorest 无法生成任何内容,并且没有错误

我正在github上尝试 petshop 客户端生成示例,而 autorest 只是退出而没有创建任何内容或引发任何错误。Autorest 的行为就像我没有传递任何参数一样。附件是我的powershell执行的截图。

在此处输入图像描述

0 投票
4 回答
1398 浏览

c# - 自动与手动 WebApi 客户端生成

我计划为现有的 Restful API 创建一个客户端,并选择手动或使用 Autorest 或 Swagger codegen 等工具自动完成。
两种方式的优缺点是什么?
自动生成客户端有什么缺点吗?

0 投票
1 回答
879 浏览

c# - 带有状态码转换的 AutoRest 自定义重试策略

我正在开发一个带有一些微服务和一个通过 AutoRest 生成的客户端进行通信的 Orchestrator 的系统。当调用 Orchestrator 并且 Orchestrator 进行依赖调用时,我遇到了一个问题,如果依赖失败,它会通过 auto rest 重试 3 次。现在这通常没问题,但由于 Orchestrator 收到失败的响应,它将重试 3 次,这将重试下游服务 3 次,每次导致 9 个下游调用。

我想到了以下解决方案,允许下游服务失败并正常返回 500 Internal Server Error。如果重试也失败并且我们收到的最终响应代码是瞬态响应代码,我们将其转换为 502。我创建了一个自定义 ITransientErrorDetectionStrategy,它不会在 502 上重试,因此当协调器冒泡返回 502 响应代码时,协调器请求不会重试。

我的 ITransientErrorDetectionStrategy 如下所示:

我遇到的问题是将现有的 500 响应转换为 502,我不想将其留给调用代码来执行此操作,而是将其构建到客户端中。我一直在考虑构建一个自定义 RetryDelegatingHandler,但是我不确定如何在我的客户端工厂中使用它。

0 投票
1 回答
1742 浏览

c# - 在 .NET Core 中不使用 JsonProperty 的不区分大小写的属性绑定

我有一个C# ASP.NET Core Web Api应用程序和C# ASP.NET Core MVC应用程序

在这种情况下,应用程序使用这样的模型MVC调用应用程序(客户端是通过 生成的):APIAutoRest

此时,我可以调试看到ThingID设置了我的值。当我调试API应用程序时,我可以看到该属性没有转移...属性定义如下:

但是,当我用

然后绑定值。我试图弄清楚如何绑定它而不必用该属性装饰它。某种不区分大小写的解析器之类的?

我试过使用:

在不更新客户端的情况下,两者都无法解析该属性。问题是我不希望客户改变。它应该像现在一样生成,但我希望无论客户端的情况如何,都将值绑定到属性。我怎样才能做到这一点?

0 投票
1 回答
871 浏览

c# - C# SwaggerGen + AutoRest - 如何发送流体?

我想这是一个非常典型的场景:我们的解决方案公开了一个由 asp 核心 C# 控制器构建的 API,我们从中生成一个 swagger.json(使用https://github.com/domaindrivendev/Swashbuckle.AspNetCore)。

我们通过使用 AutoRest ( https://github.com/Azure/autorest ) 生成的 C# 客户端在代码中调用此 api。

为了执行可能较大的上传,我们希望使用 AutoRest 生成的客户端将 Stream 从 C# 调用者传递到我们的后端,以避免必须序列化/反序列化完整的对象。

我不知道如何同时使用这两个工具来通过来自我们的 c# 代码的调用传入 Stream。我尝试将其添加为参数,但这会导致 AutoRest 为 System.IO.Stream 创建一个“流”模型,然后将其用作输入参数的类型,而不是仅保留原始类型。我已经尝试将它作为 [FromBody] 参数传递,但除了上述问题之外,AutoRest 还会在将其添加到请求而不是 StreamContent 之前将其键入为 StringContent (可能是因为 SwaggerGen 不将其识别为 Stream? )。

不胜感激 - 但如果我们不能这样做,我们总是可以手动使用 HTTPClient,我猜。

0 投票
1 回答
143 浏览

asp.net-web-api2 - 可以在 AutoRest 生成的 .net 客户端中使用定义服务器端并由 Web API 返回的模型类吗?

情况:

  • 在 Web API 控制器中的服务器端,我得到了一个模型类,让我们调用它MyNamespace.MyData,除了属性之外,它还具有诸如bool CanEditThis()方法之类的业务逻辑功能。
  • 使用 Visual Studio 2017,我使用“添加”->“REST API 客户端”生成客户端代码以调用 Web API 方法并返回数据,但这会生成一个新的模型类,如ClientNamespace.MyData客户端(没有函数),而不是检测已经有一个可用的模型类MyNamespace.MyData(带有功能)。
  • 服务器端使用的模型类在他们自己的项目中定义,并在客户端和服务器端代码的 DLL 中可用(将此设置用于 WCF,但希望通过 Web API 实现新功能)。

如何在两端使用相同的模型类?

添加到 swagger/OpenAPI 定义中的任何神奇属性,以便 AutoREST 生成的代码知道重用类模型而不是创建新的?

或者我是否必须在 a)MyData在服务器端和客户端项目中复制部分类的代码或 b) 具有将返回的转换为的实用程序函数之间进行IList<ClientNamespace.MyData>选择IList<MyNamespace.MyData>

0 投票
1 回答
85 浏览

rest - WPF 使用 AutoRest 与安全的 Web api 对话

我似乎对此无能为力。
我有一个运行良好的 web api,一个 wpf 应用程序通过 AutoRest 使用 api。
api 已上传到 Azure(应用程序服务)
我现在想锁定 api,以便用户通过 Active Directory 登录。同样,所有用户当前都在那里。

使用 RestCredentials 我将凭据作为类型传递

我可以在 Azure 的日志中看到用户成功登录。但是系统只是因为
操作返回了无效状态代码“InternalServerError”而死机,根本没有任何反馈。
请注意,我在这里也使用 swagger。
我假设传递凭据的 BuxtedAPI 调用应该通过承载令牌以进行 api 调用以进行授权。
我没有在 webapi 代码库上设置任何其他内容,没有 [AUTHORIZED] 或任何内容。
任何人都可以在这里帮助我。
谢谢斯科特

0 投票
2 回答
706 浏览

c# - 来自 Swagger 的 AutoRest,但重用了我现有的程序集类

我有一个 Windows UWP 客户端应用程序,它需要调用由我的 ASP.NET 服务托管的 REST API。要生成我的客户端代理,我使用以下 Visual Studio 选项...

右键单击项目 -> 添加 -> REST API 客户端...

我提供了 swagger 端点的 URL,它会生成预期的客户端代码。但缺点是它会生成所有类,即使在我的情况下,我有一个共享类库,其中定义了所有服务器端类。这很痛苦,因为生成的类不尊重我的类层次结构的继承,并将所有内容扁平化为非继承类。

是否可以让 AutoRest 为类重用现有的 .NET 库,而不是总是生成新类?当我使用 WCF 客户端代理生成器时,这是一个选项。

0 投票
3 回答
1908 浏览

c# - 如何将 Windows 身份验证与 Microsoft.Rest.ServiceClient 一起使用

我有一个Microsoft.Rest.ServiceClient生成的autorest. 我想访问使用 Windows 身份验证和基本身份验证保护的 REST API。

目标是使用 Windows 身份验证。我尝试如下:

这不起作用,我得到:

当我使用基本身份验证时,它可以工作。

这个设置ServiceClient是在构造函数中完成的

我需要向客户端添加什么才能使 Windows 身份验证正常工作?

编辑:

看起来问题出在服务器端。IIS 中的设置。

客户端将按预期工作。