问题标签 [swashbuckle]

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 投票
0 回答
2069 浏览

c# - 将 Swagger/Swashbuckle 与命名空间版本化的 ASP.NET WebAPI 一起使用

我有一个使用命名空间版本控制的 ASP.NET Web API 应用程序。

例如,此方法可在api/v1/Location/Process访问:

Swagger 设置为使用 MultipleApiVersions 方法处理此设置:

但是,当生成 Swagger UI 时,方法在 url 中具有完整的命名空间和控制器名称:api/V1.Location/Process

任何人都知道如何编辑 Swagger 将使用的路径,以便创建正确的 url?(基本上只需要更换那个句号)。理想情况下,我不想使用路由属性。

(这里有一个与我类似的问题,但它遗漏了一些我想解决的尖锐问题。)

0 投票
1 回答
4798 浏览

iis - Swagger / Swashbuckle 适用于 IIS Express 但不适用于 IIS

我使用以下指南将 Swashbuckle 安装到我的 Web api 应用程序中:http: //bitoftech.net/2014/08/25/asp-net-web-api-documentation-using-swagger/

当我在本地 IIS express / Cassini 安装上运行它并将我的浏览器指向 http://localhost:59988/swagger/时,它工作得很好

但是,当通过 IIS8.5 访问应用程序时,它似乎不起作用,例如在 http://my.localhost/swagger/

我被重定向到 /swagger/ui/index/ 引发异常

{"Message":"发生错误。","ExceptionMessage":"找不到映射 - index/","ExceptionType":"Swashbuckle.SwaggerUi.AssetNotFound","StackTrace":" 在 Swashbuckle.SwaggerUi.EmbeddedAssetProvider。 GetAsset(String rootUrl, String path)\r\n at Swashbuckle.Application.SwaggerUiHandler.SendAsync(HttpRequestMessage request, CancellationToken cancelToken)"}

问题似乎源于 IIS 重定向我并在 url 末尾附加一个斜杠(这也是错误消息所说的。)

我有

问题:为什么 IIS 将尾部斜杠添加到 url,我有哪些选择可以让 swashbuckle 在 IIS 中工作?

0 投票
2 回答
5348 浏览

asp.net-web-api2 - SwashBuckle/Swagger - OAuth 资源所有者密码流程

我正在尝试在我的 Asp.Net Web API 中实现 swagger,但我遇到了问题。

我正在使用密码资源所有者流程,我必须添加一个解决方法才能做到这一点,这在以下堆栈溢出问题中有所介绍:-

Swagger/Swashbuckle:具有资源所有者密码凭证授予的 OAuth2

我已经完成了所有工作,通过 javascript 将承载令牌添加到当前浏览器窗口中的请求标头中,但是对需要授权的控制器方法的 api 调用仍然返回“401 - 授权失败”。

这是获取不记名令牌并添加标头的 JavaScript:-

Swagger 响应中的 Curl 是:-

curl -X GET --header "Accept: application/json" --header "Authorization: Bearer NqlSG-WyTx2zkYE8xFklGyZWlQDZdsCKZBHruEXvX47N7PAzw4-jZ4eH5D0yFzQTXj13RwKFFt1rUZt2fzWj1vR5UR87wdlKC3YvsTojYV4-3DsWwY7qYRfiKPuM0j09c3X5lnrtlBVJ1rBRUH0TLjfw_yGxgoLBwOJl9xyC1YWNoPOe2nzL4lMOHodAnMem0IBMJmUo3Rt575tnWAbBsQXWhlImDIxCZXvkZdJtlXfIfBSUdY9gfRWL0ZjKbf7m2-yLzH0gpMAMuKaADmJlIudJc0d4SP1Nn2Kh2HuVH8CX4QgZuu4egl9N6rY2smorP2vBSC4_dC4CpmYYzOTu2wUnUhHDY2Q6NWl377ijDKwZLcW9jtD-2tBiEGmFuRV0mVGnh0zc4w9Ao9jPCdtrbSyGitgloBW-UG2bfyao3eE" " http://localhost:42291/api/v1/claims "

我根本看不出这有什么问题。

然后,我使用 Postman 调用完全相同的 URL 调用,使用在 javascript 调用中生成的相同访问令牌......

你猜怎么着......它工作正常。

编辑

我尝试从控制器中删除授​​权属性,以便我可以在请求到达控制器方法时检查它。

查看请求标头,Authorization 属性为空。

不知道为什么会这样。CURL 建议将其放入请求中。

编辑 2

我已经包括了我的安全定义:-

编辑 3 此 api 调用在 Swagger UI 中显示的 cURL,当直接在命令行通过 cURL 公开时,没有问题。

现在我完全糊涂了。

0 投票
8 回答
12293 浏览

c# - Swagger 给了我 HTTP 错误 403.14 - 禁止

我正在尝试将 Swagger 与 Web API 一起使用。我只是使用随 Visual Studio 安装的 ASP.NET 4.6 模板中的“Azure API App”模板,其中Swashbuckle.Core包括SwaggerConfig.cs. API 工作正常(我能够成功调用它),但如果我尝试转到“ http://mybaseurl/swagger/ ”,我会收到以下错误:

HTTP 错误 403.14 - 禁止 Web 服务器配置为不列出此目录的内容。

看起来 Swagger 没有被加载或其他东西。其他人以前得到这个吗?我似乎无法解决这个问题。谢谢,如果我能提供更多细节,请告诉我。

这是我的 SwaggerConfig.cs 的样子:

0 投票
4 回答
28020 浏览

asp.net-web-api2 - Swashbuckle Swagger - 如何注释内容类型?

如何注释我的 ASP.NET WebAPI 操作,以便 swagger 元数据包含我的资源支持的内容类型?

具体来说,我希望文档显示我的一个资源可以返回“原始” application/jsonapplication/xml但现在也可以返回新格式,application/vnd.blah+json或者+xml.

0 投票
1 回答
456 浏览

azure - 从 swagger 文件生成 Azure API 应用程序客户端时出现 NotSupportedException

我有一个由 Swashbuckle 从我的 Web Api 服务生成的 swagger 元数据文件。当我尝试生成 Azure API 应用程序客户端(使用 Visual Studio 2015 > 添加 > Azure API 应用程序客户端 > Swagger 元数据文件时,会引发以下错误:

我想我在我的模型中使用了生成器不支持的东西。我能以某种方式获得更详细的错误消息来解释问题所在吗?

0 投票
1 回答
1512 浏览

asp.net-mvc - Swashbuckle 配置错误

我正在尝试将 Swashbuckle 添加到我的 ASP.NET MVC WebAPI 项目中。我从 Visual Studio 2013 中的一个空 MVC 项目模板开始。后来我添加了所需的文件/包等。但不知何故,我无法将 Swashbuckle 集成到其中。每次我运行此代码时,都会在SwashConfig.cs.

Swashbuckle 配置

以下是我的web.config

package.config

Global.asax.cs

WebApiConfig.cs

SwaggerConfig.cs

RouteConfig.cs

事情大错特错。请帮忙。

我在用着:

System.Web.Http 版本

System.Web.Http.WebHost 版本

0 投票
1 回答
2336 浏览

c# - 如何配置 Swagger/Swashbuckle 自定义序列化程序 IControllerConfiguration ASP.NET WebAPI

我有一个 WebAPI 端点,它实现了两个不同版本的 API(旧版和新版)。遗留端点使用特定的序列化器,该序列化器将所有对象序列化为带下划线的小写单词,v2 端点使用驼峰式属性名称。例如,V1 = "document_type" 和 V2 = "documentType"

目前这是使用控制器特定属性来定义序列化来实现的,如下所示:

当通过 REST 从客户端调用时,这一切都可以正常工作,但 Swagger 生成的文档始终使用旧的序列化程序设置显示属性名称。关于配置 swashbuckle 以正确序列化每个版本的任何建议?

0 投票
0 回答
783 浏览

asp.net - 如何让 swagger 2.0 支持 WebApi 区域?

我已将 swagger-ui(2.0 版)集成到我的 Asp.Net WebApi 4.0 项目中。这是我的路由配置:

并且 swagger-ui 生成文档包含重复项。common并且active具有相同的控制器+动作。像这样:

如何避免此问题或启用招摇支持区域(无论名称如何)。我可以指定每个控制器的区域。正确的结果可能是这样的:

0 投票
2 回答
3377 浏览

c# - Swagger 中的重复参数输出

更新:我开始怀疑这是否是由于错误:

https://github.com/domaindrivendev/Swashbuckle/issues/590

但是那里建议的解决方法似乎不能解决我的问题。


我正在使用 Swashbuckle 为 C# ASP.NET Web API 项目生成 API 文档。

我的目标是允许以下内容作为有效 URL:

将必需参数 (param1) 设置为“foo”,将可选参数 (param2) 设置为“bar”。我希望两个参数都包含在单个 C# 参数对象中。(带有其他可选参数,如 param3 等)。几个端点将使用相同的参数,我希望有一个代表参数的对象。

Swagger/Swashbuckle 的细节大多是一个黑匣子,我无法弄清楚。我在参数列表中得到了重复项。

重现问题的示例代码:

使用第二种方法,我在单个对象中接收参数。但 Swagger 显示“param1”的重复条目。

截图:Swagger 重复参数

如何使 Swagger/Swashbuckle 不显示“param1”的第二个条目?


具有这种结构的原因是我有多个端点,它们返回不同类型的数据,但它们使用通用参数。某些参数是必需的(以及 ID 的一个 prt),因此我们希望将这些参数包含在 URL 中,并在查询字符串中包含可选参数。我希望公共参数对象应该包括必需参数和可选参数。

使用 Visual Studio 2015 更新 1 创建的示例代码。默认 ASP.NET Web API 项目。将上面的代码添加到生成的 ValuesController.cs 中。安装包 Swashbuckle 5.3.1 + 依赖项。