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

sql-server - “FromSql”操作的结果中不存在所需的列:。FromSqlInterpolated

[前言]

当我将我的 api 从 .netcore2.1 升级到 .netcore3.1 时,我发现我需要大幅更改我的实体框架代码。

我没有意识到我的远程数据库中的存储过程中有一个错误,这在我的 .netcore2.1 代码中没有表达出来。

我遇到的错误消息并没有将我指向检查存储过程内部的方向。如果搜索错误消息对某人有帮助,我会留下我的问题的最终形式。

[问题]

我有以下代码来调用返回整数的存储过程

该代码在服务器端单元测试中工作,但在通过 api 或通过 SwaggerUI 调用时失败

connect 是我的 DbContext 包含

我按照建议创建了一个虚拟视图,这样我就不会在我的数据库中得到不需要的表。

并且有

调用堆栈是

注意我已经大量编辑了这个问题,因为有一次我让 api 工作,但不再工作。

我发现我必须使用 .ToList() 否则出现错误

System.InvalidOperationException:FromSqlRaw 或 FromSqlInterpolated 是使用不可组合的 SQL 调用的,并且查询在其上构成。考虑AsEnumerable在 FromSqlRaw 或 FromSqlInterpolated 方法之后调用以在客户端执行组合。

[更新]

我弹出以下代码并没有失败

所以下一步是尝试制作一个新的存储过程

或者,也许它是数据库版本..

有趣的是单元测试失败,除非我有

在正在测试的项目中引用。即使我没有明确使用它。

这种情况下的错误消息是

我尝试将我的代码更改为

但是我的单元测试出错了

[更新]

远程存储过程使用结果集返回数据。

0 投票
1 回答
211 浏览

c# - AutoRest 生成:如何保留列表一个列表而不是列表

使用 Micrsoft RestClient 生成 WebApi 时,需要考虑许多规则,例如,您需要将所有ValueType(如intSystem.Guid)标记为System.ComponentModel.DataAnnotations.RequiredAttribute,否则 AutoRest 将System.Nullable<T>在生成的代码中生成它们。

但是我该怎么做才能保持List<int>aList<int>而不是List<int?>?在这种情况下,使用[Required]没有任何帮助。

0 投票
1 回答
1215 浏览

c# - Microsoft.OpenApi.Models.OpenApiDocument.SerializeAsV2 无效 URI:无法确定 URI 的格式

我正在将我的 API 从 .netcore 2.1 升级到 3.1

API 使用SwagerUIAutorest生成客户端。

这个关于 Autorest的问题中,我发现我需要使用:

但是,用户界面提供:

JSON是:

[更新]

我发现这里提到它:

现在 JSON 显示:

0 投票
2 回答
3402 浏览

c# - FATAL:所有操作都需要 OperationId。请添加它以进行路径的“获取”操作

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

输出是

我注意到 swagger.json 没有提到 operationId

但是我确实在api中提到了它

[更新]

当我尝试升级我的解决方案以使用 netcore3.1 和 AutoRest 3 时,我在 Swagger Attribute Hell 中度过了 2 天

这将帮助我知道我需要在值控制器上放置哪些属性才能生成客户端代码。

我在用

输出是

在 api 代码中,我有 TargetFramework netcoreapp3.1、Swashbuckle.AspNetCore 5.2.0、FluentValidation 8.6.2

当我的 api 在 .net core 2.1 中时,我一切正常但是我想调用一个 .netstandard2 库,所以我将我的 api 升级到 netcore3.1

文档似乎不完整。没有提到Autorest。我是否应该尝试不同的代码生成器,我想知道。

[更新]

来自 .netcore2.1 分支的示例 json api测试

来自 .netcore3.1 分支的示例 json

netcore3.1 分支

但是,比较可能不公平,因为我可能已经更改了 netcore3.1 分支中的内容。

我已经为 这个相关问题设置了一个示例存储库,并将为此设置一个 netcore2.1 分支。

0 投票
1 回答
1456 浏览

c# - 注意:从配置中选择的 AutoRest 核心版本:~2.0.4413 当我安装了 3.06187

我在节点 v12.16.1 上安装了 autorest 3.0.3187 并运行

删除旧版本

但是,当我跑步时

我得到以下输出

0 投票
1 回答
1515 浏览

c# - 当 swagger.json 由 localhost 提供时,Autorest 无法针对文件解析 swagger.json

当 swagger.json 托管在网站上时,我可以使用 Autorest_core 3 生成客户端,但当它托管在 localhost 上时则不能。

但是,如果我将 swagger.json 从本地主机剪切并粘贴到文件中,则可以生成客户端。

在 startup.ConfigureServices 我有

在 Startup.Configure 我有

当我启动 api 并尝试生成客户端时

我得到以下输出

但是以下确实有效

[编辑说明]

我已经对这个问题进行了广泛的编辑,因为我之前认为我的问题可能与我使用的 autorest 版本有关。我实际上并不清楚我是否可以使用 autorest v2 从 localhost swagger.json 生成

我只是发现如果我将 swagger.json 剪切并粘贴到文件中,我可以从本地主机生成。我宁愿不必这样做。

可悲的是,输出的https://aka.ms/autorest 给出了 404

[更新]

我尝试使用 http 前缀

类似于 https

如果我浏览到http://localhost:44338/swagger/v1/swagger.json我得到一个错误

如果我浏览到https://localhost:44338/swagger/v1/swagger.json它会重定向到 localhost:44338/swagger/v1/swagger.json

我尝试按如下方式更改配置,但没有任何区别

在项目调试选项卡中,我有

应用网址

[更新]

我取消选中 ssl 并成功运行以下命令。

如果我点击我看到的网址 不安全的 url 消息

0 投票
0 回答
96 浏览

swagger - Swashbuckle.AspNetCore 5.2.1 和 autorest 3.0.6187 返回没有服务器条目

我无法为带有 autorest 3.0.6187 的非常基本的 Swashbuckle.AspNetCore 5.2.1 站点生成 csharp 或 powershell 客户端是否有另一种可以协同工作的软件版本组合,或者有没有办法让 json 输出包括服务器信息里面有api的位置吗?

0 投票
1 回答
623 浏览

c# - AutoRest 为方法返回类型生成可为空的布尔值

我对 CSharp 的生成 RestApiClient 有问题。在 Visual Studio AutoRest 中发现了问题,因此我下载了 AutoRest CLI,但生成了相同的错误方法返回类型。

这是 Swashbucke 5.6.0 从 WebApi 生成的 Swagger.json

带参数的命令

AutoRest 的输出

我期待“布尔”而不是“布尔?”

0 投票
1 回答
446 浏览

c# - HttpClient SendASync 崩溃

我有一项服务,在我的最新更新开始崩溃后。

它确实在服务器和我的开发环境中崩溃,所以它不是系统特定的。

它在 Autorest 生成的代码上崩溃

它抛出一个 StackOverFLowException 并且没有附加任何内容......没有给出更多信息。

Fiddler 显示没有发送任何数据,因此它不会开始发送任何内容。

据我所知,当它停止工作时我所做的唯一更改是我更改了另一个autorest 命名空间。

0 投票
1 回答
3837 浏览

swashbuckle - 数据与“oneOf”中的任何模式都不匹配

将我的 api 从 .netcore2.2 升级到 3.1 并尝试使用带有 --v3 开关的 autorest 生成后,出现此错误

警告:架构违规:数据与“oneOf”中的任何架构都不匹配

我尝试过使用和不使用 SerializeAsV2

我从Autorest 文档中看到此警告是由于受支持的功能所致。

目前不支持 anyOf、oneOf

在 services.AddSwaggerGen 我有

在哪里

[更新]

升级到 Autorest 3.0.6244 后,警告已更改为错误,错误消息以

如果我不使用 v3 开关,我会收到错误消息

我可以在 swagger.json 中看到参数属性“名称”没有正确生成。这里它包含“body”,而之前它包含“info”

控制器是

更新

我也尝试过使用 Swashbuckle.AspNetCore.Annotations 中的 SwaggerParameter

[更新]

我在想也许我只需要尝试发布 1766 号

我尝试克隆 swashbuckle.aspnetcore 存储库,但遇到了这个问题

[更新]

我添加了 c.GeneratePolymorphicSchemas(); 到 AddSwaggerGen 选项,但它没有帮助。

[更新] 这是第一条错误消息

调查 swagger.json 中的第 1951 行

导致错误的行

在工作大摇大摆(从 dotnet2.2 项目生成)中,json 看起来非常相似,但是交换了参数顺序 工作的json

我可以看到的另一个区别是参数的生成名称

我从这个问题中看到错误发生在同一个地方

[更新]当我将 --debug 开关添加到我得到的 autorest 调用时

[更新]

这是缩减的json

使用 .netcore2.2 api,请求生成为

这是我正在运行的命令行


作者 Kirsten Greed 在评论中添加的一些链接: