c# - 将 JWT 承载授权添加到 NSwag 13
问题描述
我们正在使用 NSwag 11 并试图移动到似乎使用完全不同的调用的 13th。
旧式代码看起来有点
public static class SwaggerServiceExtensions
{
public static IServiceCollection AddSwaggerDocumentation(this IServiceCollection services)
{
services.AddSwaggerGen(c =>
{
c.SwaggerDoc("v1.0", new Info { Title = "Main API v1.0", Version = "v1.0" });
c.AddSecurityDefinition("Bearer", new ApiKeyScheme
{
Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
Name = "Authorization",
In = "header",
Type = "apiKey"
});
});
return services;
}
public static IApplicationBuilder UseSwaggerDocumentation(this IApplicationBuilder app)
{
app.UseSwagger();
app.UseSwaggerUI(c =>
{
c.SwaggerEndpoint("/swagger/v1.0/swagger.json", "Versioned API v1.0");
c.DocExpansion("none");
});
return app;
}
}
现在感觉图书馆发生了很大的变化。所以现在我将使用services.AddSwaggerDocument和app.UseSwaggerUi3。而且没有像SwaggerSecurityScheme或ApiKeyScheme这样的选项
解决方案
您是否尝试过以下操作?
services.AddOpenApiDocument(document =>
{
document.DocumentName = "v1";
document.PostProcess = d =>
{
d.Info.Version = "v1";
d.Info.Title = "Main API v1.0";
};
document.AddSecurity("apikey", Enumerable.Empty<string>(), new OpenApiSecurityScheme
{
Description = "JWT Authorization header using the Bearer scheme. Example: \"Authorization: Bearer {token}\"",
Type = OpenApiSecuritySchemeType.ApiKey,
Name = "Authorization",
In = OpenApiSecurityApiKeyLocation.Header
});
document.OperationProcessors.Add(
new OperationSecurityScopeProcessor("bearer"));
});
和
app.UseSwaggerUi3(typeof(Startup).GetTypeInfo().Assembly, settings =>
{
settings.DocumentPath = "/swagger/" + "v1" + "/swagger.json";
settings.DocExpansion = "none";
});
推荐阅读
- node.js - 更新嵌套对象数组中的数组
- javascript - 将 blob 转换为数据 url
- angular - 在离子电容器 3.1.2 中重命名数据库
- selenium-webdriver - Mac OS M1 上的 Selenium 无法打开 Firefox 浏览器
- firebase - 每个项目的每日写入请求 - 云功能
- python - 在 Python 中以表格形式打印数据
- javascript - 我的 indexOf() 方法有效,但是当涉及到最后一个值时,它停止工作
- apache-kafka - Keberized Kafka 客户端登录异常
- azure - 如何查看 Azure Synapse 中的物化视图数据存储和维护成本?
- react-native - 如何在本机反应中将滑块连接到 redux?