问题标签 [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.
c# - Swashbuckle:在数组类型中设置不可为空的属性
我正在使用 autoRest 从 swagger 模式生成一个新客户端。我在模型中有 DateTime 列表
这是从该属性生成的 Json 招摇模式
这是我运行 autoRest 后得到的结果
我想获得一个类似这样的不可为空的 dateTime 属性
c# - 如何将 HttpClientFactory 与 AutoRest 生成的客户端一起使用
AutoRest 生成的客户端没有合适的构造函数来使用 services.AddHttpClient() 方法。那么我们怎样才能解决这个问题呢?
现在我们有了具有这样签名的公共构造函数。
但是因为它有 bool disposeHttpClient 参数,所以我们不能直接在 AddHttpClient() 方法中使用它来将客户端服务配置到 DI 中。令我深感遗憾的是,HttpClientFactory 不包含具有这样签名的方法 AddHttpClient 的覆盖版本:
swagger - 使用 NSwag 和 AutoREST 创建一个代码客户端/扁平化控制器
我正在尝试使用 NSwag 和 Autorest 为 api 创建一个代码包装器。
以前我使用 Swashbuckle 生成 swagger 文件。它生成了带有 operationIds 格式的 swagger 文件actionMethod
。这导致 Autorest 生成一个深度为 1 的代码客户端。所有的动作都在顶级级别。
由于各种原因,我需要将 swagger 生成更改为 NSwag。这会生成格式为 的 operationIds controller_actionMethod
。这导致 AutoRest 创建一个复合类,该类公开具有每个控制器操作的单独类。
怎么可能
- 更改 NSwag 生成 operationIds 的方式
- 更改 Autorest 映射 operationId 的方式
注意:我知道我可以手动更改 swagger.json,但我想保持一致的自动化流程来生成代码客户端。
xml - Autorest 休息客户端代码生成器不适用于 XML 响应类型
我正在尝试使用 swagger 2.0 和https://github.com/Azure/autorest (Autorest) 为 Rest Enspoint 生成 C# 代码。如果 API 服务响应类型是,它们可以正常工作,application/json
但如果是application/xml
,则在对对象的响应的反序列化过程中失败。我相信这是因为 xmlns(命名空间本身没有对象)。有没有人尝试autorest
在发送媒体类型应用程序/xml 的服务上使用并取得成功?
任何示例都会有所帮助,这是我得到的错误
这是 xml 文件,我正在为其创建端点。https://repo1.maven.org/maven2/junit/junit/4.13-beta-1/junit-4.13-beta-1.pom
我用一堆工具创建了 swagger 2.0 模式。
c# - 我应该如何在 asp.net mvc 5 中使用 autofac 注入带有 TokenProvider 的 Autorest 客户端?
我想通过使用 autofac 正确注入一个使用 api 的 autorest 客户端依赖项(用户在登录后将有自己的令牌使用,但他们可以在登录前使用 api,因为某些方法不需要令牌)。我知道这不是直接的 autorest 问题,它更多的是关于 autofac 但我想给出确切的例子,所以我可以获得更好的建议(也许我做错了,这是一个概念问题)。我查找了一些示例,我发现了一些示例,但在所有示例中,它们只是为一个用户实现,他们没有使用 tokenprovider,他们只是传递了一个预先知道的令牌(这不是用户的令牌,而是用于应用程序)。
我尝试的是使用包装参数(已经注册的多个依赖项将彼此作为构造函数参数)注册 autorest 客户端到容器中。
这就是我注册服务的方式:
和我的服务:
这是我得到的例外
内部异常无法将类型的对象
Autofac.Core.ResolvedParameter
转换为类型Microsoft.Rest.ServiceClientCredentials
。
autorest - System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification 调用 Autorest 生成的代码
我有一个单元测试,调用一个使用 Autorest 生成的代码来调用我的 Api 的服务。
我希望我的单元测试显示我的 Api 抛出的错误,但服务的错误处理中似乎存在错误。
我正在使用以下命令生成代码来使用我的 api。
生成的“客户端代码”包含
我有一个单元测试来调用生成的代码
在哪里
和 MyApiService 包含(具有更改的名称空间)
apicaller 在哪里
我的 Api 引发 InternalServerError 但是,当我运行单元测试时,客户端代码中出现错误。
错误发生在
并且是
我该如何解决这个问题?
我注意到 HttpOperationResponse 的代码是
这是 GetAvailableCarriersResponse 的结构
[更新]
在 ApiCaller ExecuteAsync 中执行以下操作。
如果我此时发现错误,它是(编辑的) ToString() 返回
我编辑了上面代码中的一些名称以简化和混淆。
[更新]
问题似乎与 ApiCaller.ExecuteAsync 的 getHeaders 参数有关
[更新]
如果我检查 ExecuteAsync 中抛出的 ex1,我可以使用
但我如何获得错误描述?
angular - AutoRest 的 TypeScript 客户端的 HttpInterceptor
我对 TypeScript 和 Angular 还是很陌生。我有http拦截器:
当我通过 HttpClient 从 '@angular/common/http' 发送 GET 请求时,let resp = await this.http.get('http://localhost').toPromise();
我可以在标题中看到我的 TEST 标题项。
我还使用 autorest 为我的休息服务生成 TypeScript 客户端(@microsoft.azure/autorest-core: 2.0.4302),并且当我调用生成的客户端自定义 TEST 标头的任何方法时,不会将其添加到查询中。
我认为 AutoRest 也通过相同的 HttpClient 生成 HTTP 查询,应该由HttpInterceptor
......
也许我这样做完全错误,它应该以这种方式工作吗?或者有没有办法拦截由 AutoRest 生成的代码发出的 http 请求?
c# - AutoRest 在构造函数中需要 ServiceClientCredentials,但如果不实例化客户端对象,我就无法获取该数据
我使用 AutoRest 生成了一个 API 客户端并正在使用该--add-credentials
参数,以便我可以传入一个不记名令牌。为了获得令牌,我需要能够实例化对象并像这样调用我的登录方法:
问题是每个构造函数都需要ServiceClientCredentials
. 据我了解,我需要创建一个TokenCredentials
包含令牌字符串的实例。但我不能这样做,因为不调用 Login 就无法获取令牌字符串。如果没有令牌字符串,我就无法调用 Login。
我确定我只是误解了如何使用 API 客户端。但是关于我在这里做错了什么的任何想法?
authentication - Autorest:在查询字符串中进行身份验证
我正在使用需要通过查询字符串进行身份验证的 REST Api。
更具体地说,招摇的安全定义是
但是,各个操作不包含api_key
作为参数。与标头不同,我不能只创建一个在 HttpClient 上设置默认标头的构造函数。
如何生成让我设置 api 密钥的代码客户端?
附加说明:我也接受其他生成器,如 NSwag。不幸的是,截至 2019-06,NSwag不处理生成中的安全定义