问题标签 [swagger-net]

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 回答
687 浏览

asp.net-web-api - Swagger-Net 支持 API Key 认证

我们在 WebAPI 应用程序中使用令牌身份验证。每个调用(获得密钥的其他方法)都使用相同的模式。

Authorization: our-token v01544b7dce-95c1-4406-ad4d-b29202d0776c

我们使用Attribute和实现了身份验证IActionFilter

控制器看起来像这样:

Swagger 配置有以下内容:

Swagger UI 显示“授权”按钮,我可以将令牌粘贴到弹出窗口中的字段中。但是,在任何测试中都没有通过任何标头。并且没有方法上有“锁定”图标。

编辑:

我也试过:

其中属性只是属性:

然后我们使用 IActionFilter 检查属性是否应用于方法,这就是我们检查权限的地方。这样做是为了通过 DI 使用服务。

编辑2:

我对 Attribute 的声明方式进行了更改:

在 Swagger UI 开始将所有方法显示为安全之后,因此它确实分析它实际上是AuthorizeAttribute,而不仅仅是 Attribute

之后它开始像这样放置标题: our-token: ZGV2OnYwMTA2YjZmYjdhLWRlNTUtNDZlNC1hN2Q4LTYxMjgwNTg2M2FiZQ==

它应该在哪里: Authorization: our-token GV2OnYwMTA2YjZmYjdhLWRlNTUtNDZlNC1hN2Q4LTYxMjgwNTg2M2FiZQ==

0 投票
0 回答
38 浏览

swagger-net - 将 [FromUri] 与复杂的 EF 模型一起使用时,Swagger-net 会中断

我在我的 .NET 4.5.1 WebAPI 项目中使用Swagger-Net,我的一个 API 调用导致 Swagger UI 在加载时永远旋转,然后返回以下错误。

在此处输入图像描述

具体来说,我发现[FromUri]与引用其他实体的复杂 EF 实体结合使用最终会导致这种情况。

有没有办法仍然使用FromUri和EF模型?还是我需要更改我的 API 调用签名?

0 投票
1 回答
235 浏览

asp.net - Swagger 文档中的 RoutePrefix 与 apiVersion 模式冲突

我有两个 ApiController

Swagger 不会显示 Login v2,直到我在 V1 控制器中更改RoutePrefix"v2/account"代替{version:apiVersion} 或更改相同的内容也产生相同的效果。

这意味着其中之一应该是非模式前缀我正在使用 ASP.NET Api(不是 .NET Core)和Swagger-Net版本 8.3.23.1103。

0 投票
0 回答
121 浏览

asp.net-web-api - Swagger-Net 和承载令牌授权

我们正在使用带有承载令牌授权的 Swagger-Net,如下所示:

c.ApiKey("Authorization", "header", "Bearer Token Authentication");

请求需要以“Bearer [bearertoken]”格式发送,并且我已经验证,当以这种格式粘贴到“API Key”授权文本框中时,它确实可以正常工作。Curl 显示它在标头中传递,-H "Authorization: Bearer [token]并且 API 请求成功。

有没有办法自动发送一个已知令牌以及每个 API 请求?或者换一种方式问,有没有办法用已知的字符串预先填充这个动态创建的 API Key 文本框,以简化最终使用测试我们的 API 的过程?

0 投票
1 回答
47 浏览

swagger-net - 文档有效,但 ui 没有路由?

我在 IIS 的站点中将我的 api 作为应用程序运行。该站点的 url 是“ http://api.companyName.local/ ”,而 api 的 url 是“ http://api.companyName.local/api ”。

我已经设置了足够的 Swagger-Net,以至于http://api.companyName.local/api/swagger/docs/v1返回 swagger.json 并且看起来是正确的。但是,我想不出任何 url 来显示 UI。我试过了:

所有这些都以这个错误告终: 404 未找到招摇用户界面 看起来路由正在解析到StaticFile处理程序而不是SwaggerUiHandler处理程序。

这是我正在尝试使用的设置

我已经拉下 Swagger-Net 的 github 并开始四处挖掘。我看到它httpConfiguration.VirtualPathRoot在某些地方使用,所以我想我应该为我的 api 提及它解析为“/”以防万一。

编辑:

我刚刚发现的一件有趣的事情是我从这两个网址中得到了不同的错误

以 v1 结尾的那个是进入 SwaggerUiHandler 但有 v2 错误的那个就像根本没有 v2 一样。所以看起来 Swagger-Net 中的某些东西正在查看完整的 url,如果它不包含版本,则忽略它。我的 api 没有版本,所以这很烦人。

0 投票
1 回答
912 浏览

c# - Swagger UI 响应示例 Asp.Net Core Web Api

我正在使用 Swagger.AspNetCore 来记录我的 api。到目前为止,我很高兴使用 xml 注释来生成响应模型示例,直到我必须记录嵌入对象。

所以我有简单的模型:

Swagger UI 仅针对 TotalCost 记录它,所有者属性只是跳过了我所做的任何事情。有谁知道为什么会发生这种情况?以及如何解决它。
我知道如何处理 List - 只需将顶部的 xml 注释放在上面,<list></list>但这不是我的情况。

谢谢

0 投票
1 回答
32 浏览

swagger-net - 如何将 Swagger-Net 根 URL 从“/swagger”更改为根?

我正在使用 swagger-net。默认情况下,swagger UI 将是“/swagger”,如何将其更改为 root?

感觉我现在在做的是一个 hack

0 投票
0 回答
31 浏览

asp.net-mvc - .Net MVC 4 中 Swagger-Net 中每个方法的 BasicAuthentication 和 ApiAuthentication

如https://petstore.swagger.io/所示, PET控制器的 api由OAuth2认证,而STORE控制器的 api 由ApiKey认证。

我想IOperationFilter.Net MVC(而不是 .Net Core)中实现相同的目的。

虽然我可以为一个 API 打开 BasicAuth,但无法关闭 ApiKey Auth。可能是我找不到使用该工具的正确文档。

有人可以指点我正确的文档吗?

Swagger-Net版本8.3.35.101

0 投票
1 回答
34 浏览

swagger - 为什么 Swagger 会检测到必需的 * 路径参数 {namespace}?

我的 .Net MVC 项目具有以下 ApiController:

在此处输入图像描述

但是 Swagger UI 会生成两种方法:

在此处输入图像描述

观察到ActionName TestMethod1被省略了(可能是因为这个控制器中只有一个HttpGet)

0 投票
1 回答
449 浏览

c# - 在 Swagger.Net UI 中,如何从“匿名”方法中删除挂锁图标?

我在这里找到了一个类似的线程,但那是针对.Net Core的。我对Swagger.Net API( .Net Framework ) 有同样的问题。

我将 Swagger.Net API 版本 8.3.35.101 与 .Net 框架 4.6.1 一起使用,并且我在 Swagger UI 中为每个方法都获得了一个锁定图标。我的应用程序中的某些 API 不需要身份验证,因此我想从此类 API 中删除挂锁图标。

在此处输入图像描述

在上图中以红色突出显示的图像中可以看到需要移除的挂锁图标。我相信可以通过实现IOperationFilter来为匿名方法隐藏它,但找不到任何示例代码来使用 .Net 框架实现它。