标签:vNext ... ABP other context Test Swagger options
在前后端分离的项目上,后端开发完成的接口,如何快速方便的提供给前端调用,目前使用的较多便是Swagger。实际上ABP也集成了Swagger。
首先使用 Install-Package Volo.Abp.Swashbuckle
添加nuget包,添加AbpSwashbuckleModule
依赖:
[DependsOn(
//...other dependencies
typeof(AbpSwashbuckleModule) // <-- Add module dependency like that
)]
public class YourModule : AbpModule
{
}
配置Swagger
public override void ConfigureServices(ServiceConfigurationContext context)
{
var services = context.Services;
//... other configurations.
services.AddAbpSwaggerGen(
options =>
{
options.SwaggerDoc("v1", new OpenApiInfo { Title = "Test API", Version = "v1" });
options.DocInclusionPredicate((docName, description) => true);
options.CustomSchemaIds(type => type.FullName);
}
);
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
//... other configarations.
app.UseAbpSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Test API");
});
//... other configarations.
}
如果要隐藏 ABP 的默认端点,可以在 Swagger 配置中调用 HideAbpEndpoints 方法
services.AddAbpSwaggerGen(
options =>
{
//... other options
//Hides ABP Related endpoints on Swagger UI
options.HideAbpEndpoints();
}
)
权限配置
ABP集成了Identity Server来做权限认证,需要使用 AddAbpSwaggerGenWithOAuth
扩展在Module的 ConfigureServices 方法中使用 OAuth issuer
和scopes
来配置 Swagger。
public override void ConfigureServices(ServiceConfigurationContext context)
{
var services = contex.Services;
//... other configarations.
services.AddAbpSwaggerGenWithOAuth(
"https://localhost:44341", // authority issuer
new Dictionary<string, string> //
{ // scopes
{"Test", "Test API"} //
}, //
options =>
{
options.SwaggerDoc("v1", new OpenApiInfo { Title = "Test API", Version = "v1" });
options.DocInclusionPredicate((docName, description) => true);
options.CustomSchemaIds(type => type.FullName);
}
);
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var app = context.GetApplicationBuilder();
//... other configarations.
app.UseAbpSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "Test API");
var configuration = context.ServiceProvider.GetRequiredService<IConfiguration>();
options.OAuthClientId("Test_Swagger"); // clientId
options.OAuthClientSecret("1q2w3e*"); // clientSecret
});
//... other configarations.
}
标签:vNext,...,ABP,other,context,Test,Swagger,options 来源: https://www.cnblogs.com/jesen1315/p/16198596.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。