Files
MesPrintService/Print.Forum.HttpApi.Host/ForumHttpApiHostModule.cs
2025-07-12 16:20:14 +08:00

74 lines
2.3 KiB
C#

using Print.Application;
using Volo.Abp.Autofac;
using Volo.Abp.Modularity;
using Volo.Abp;
using Volo.Abp.AspNetCore.Mvc;
namespace Print.Forum.HttpApi.Host
{
[DependsOn(typeof(AbpAspNetCoreMvcModule), typeof(AbpAutofacModule))]
[DependsOn(typeof(ForumApplicationModule)
)]
public class ForumHttpApiHostModule : AbpModule
{
public override void ConfigureServices(ServiceConfigurationContext context)
{
var services = context.Services;
var configuration = services.GetConfiguration();
// 跨域
context.Services.AddCors(options =>
{
options.AddPolicy("AllowAll", builder =>
{
builder.AllowAnyOrigin()
.SetIsOriginAllowedToAllowWildcardSubdomains()
.AllowAnyHeader()
.AllowAnyMethod();
});
});
// 自动生成控制器
Configure<AbpAspNetCoreMvcOptions>(options =>
{
options.ConventionalControllers.Create(typeof(ForumApplicationModule).Assembly);
});
// swagger
services.AddSwaggerGen(options =>
{
options.SwaggerDoc("v1", new Microsoft.OpenApi.Models.OpenApiInfo()
{
Title = "ForumApi",
Version = "v0.1"
});
options.DocInclusionPredicate((docName, predicate) => true);
options.CustomSchemaIds(type => type.FullName);
});
}
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
var env = context.GetEnvironment();
var app = context.GetApplicationBuilder();
var configuration = context.GetConfiguration();
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseCors("AllowAll");
app.UseSwagger();
app.UseSwaggerUI(options =>
{
options.SwaggerEndpoint("/swagger/v1/swagger.json", "ForumApi");
});
app.UseRouting();
app.UseConfiguredEndpoints();
}
}
}