问题标签 [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.
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?(基本上只需要更换那个句号)。理想情况下,我不想使用路由属性。
(这里有一个与我类似的问题,但它遗漏了一些我想解决的尖锐问题。)
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 中工作?
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 公开时,没有问题。
现在我完全糊涂了。
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 的样子:
asp.net-web-api2 - Swashbuckle Swagger - 如何注释内容类型?
如何注释我的 ASP.NET WebAPI 操作,以便 swagger 元数据包含我的资源支持的内容类型?
具体来说,我希望文档显示我的一个资源可以返回“原始” application/json
,application/xml
但现在也可以返回新格式,application/vnd.blah+json
或者+xml
.
azure - 从 swagger 文件生成 Azure API 应用程序客户端时出现 NotSupportedException
我有一个由 Swashbuckle 从我的 Web Api 服务生成的 swagger 元数据文件。当我尝试生成 Azure API 应用程序客户端(使用 Visual Studio 2015 > 添加 > Azure API 应用程序客户端 > Swagger 元数据文件时,会引发以下错误:
我想我在我的模型中使用了生成器不支持的东西。我能以某种方式获得更详细的错误消息来解释问题所在吗?
c# - 如何配置 Swagger/Swashbuckle 自定义序列化程序 IControllerConfiguration ASP.NET WebAPI
我有一个 WebAPI 端点,它实现了两个不同版本的 API(旧版和新版)。遗留端点使用特定的序列化器,该序列化器将所有对象序列化为带下划线的小写单词,v2 端点使用驼峰式属性名称。例如,V1 = "document_type" 和 V2 = "documentType"
目前这是使用控制器特定属性来定义序列化来实现的,如下所示:
当通过 REST 从客户端调用时,这一切都可以正常工作,但 Swagger 生成的文档始终使用旧的序列化程序设置显示属性名称。关于配置 swashbuckle 以正确序列化每个版本的任何建议?
asp.net - 如何让 swagger 2.0 支持 WebApi 区域?
我已将 swagger-ui(2.0 版)集成到我的 Asp.Net WebApi 4.0 项目中。这是我的路由配置:
并且 swagger-ui 生成文档包含重复项。common
并且active
具有相同的控制器+动作。像这样:
如何避免此问题或启用招摇支持区域(无论名称如何)。我可以指定每个控制器的区域。正确的结果可能是这样的:
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 + 依赖项。