Mar*_*rta 18 swagger swagger-ui swagger-2.0 swashbuckle
我有一个ASP.NET Web Api 2应用程序.我添加了Swashbuckle(Swagger for .NET).它显示我的端点没问题,但是为了发送请求,我需要将Authorization标头附加到该请求.如果我理解为了做到这一点我需要修改index.html文件(https://github.com/swagger-api/swagger-ui#how-to-use-it)所以我git克隆了Swashbuckle项目为了修改index.html并添加一些标题.
这是在Swashbuckle中发送带有请求的Authorization标头的唯一方法吗?
Mar*_*rta 11
为了使用Swagger UI发送带有请求的Authorization标头,我需要:
鉴于我的程序集的名称是:My.Assembly它包含一个文件夹:Swagger,我放置了我的自定义index.html,我在SwaggerConfig.cs中添加了这一行:
c.CustomAsset("index", thisAssembly, "My.Assembly.Swagger.index.html");
Run Code Online (Sandbox Code Playgroud)请注意,index.html加载javascript和css文件.我必须将所有点都更改为文件路径中的虚线,以便加载这些文件.我不知道为什么要这么做,但它解决了加载文件的问题......
在index.html文件中我修改了
addApiKeyAuthorization()
功能看起来像那样:
function addApiKeyAuthorization() {
var key = encodeURIComponent($('#input_apiKey')[0].value);
if (key && key.trim() != "") {
var value = "auth-scheme api_key=123456,order_id=56789";
var authKeyHeader = new SwaggerClient.ApiKeyAuthorization("Authorization", value, "header");
window.swaggerUi.api.clientAuthorizations.add("Authorization", authKeyHeader);
}
}
Run Code Online (Sandbox Code Playgroud)
注意我将"查询"更改为"标题".
我也取消注释了这段代码:
var apiKey = "this field represents header but can be anything as long as its not empty";
$('#input_apiKey').val(apiKey);
Run Code Online (Sandbox Code Playgroud)它将在第二个文本字段中显示文本,但似乎它包含的内容并不重要,只要它不是空的.
这对我有用,并使我能够加载自定义index.html文件.现在我正在寻找启用Swagger UI用户来操纵头参数的值...
| 归档时间: |
|
| 查看次数: |
28463 次 |
| 最近记录: |