应用程序配置端点
ABP提供了一个预构建的标准端点,其中包含有关应用程序/服务的有用信息。以下是该端点提供的基础信息列表:
如果您使用ABP的启动模板并选择官方UI选项,这些配置均已预设完成,无需关注细节。但若从零开始构建UI应用,则需要了解此端点。
HTTP API
访问基于ABP的Web应用或HTTP服务的 /api/abp/application-configuration URL,即可获取JSON格式的配置信息。该端点对创建应用客户端非常有用。
脚本
对于ASP.NET Core MVC(Razor Pages)应用,相同的配置值也可在JavaScript端通过/Abp/ApplicationConfigurationScriptURL获取,该脚本基于上述HTTP API自动生成。
详见ASP.NET Core UI的 JavaScript API文档 。
其他UI类型提供对应平台的原生服务。例如,可通过 Angular UI 设置文档 了解如何使用此端点暴露的设置值。
扩展端点
application-configuration端点包含应用程序的有用信息,如_本地化值_、当前用户信息、_已授权限_等。虽然这些值通常足以满足常见需求(如获取登录用户ID或其权限),但您可能仍需扩展该端点以提供额外信息。此时可使用IApplicationConfigurationContributor接口。
IApplicationConfigurationContributor
通过实现IApplicationConfigurationContributor接口可为application-configuration端点添加额外信息。
示例:设置部署版本
using System.Threading.Tasks;
using Volo.Abp.AspNetCore.Mvc.ApplicationConfigurations;
using Volo.Abp.Data;
namespace Acme.BookStore.Web
{
public class MyApplicationConfigurationContributor : IApplicationConfigurationContributor
{
public Task ContributeAsync(ApplicationConfigurationContributorContext context)
{
//为简化示例使用静态值,可通过注入服务实现动态逻辑
var deploymentVersion = "v1.0.0";
//设置deploymentVersion属性
context.ApplicationConfiguration.SetProperty("deploymentVersion", deploymentVersion);
return Task.CompletedTask;
}
}
}
将贡献者实例添加到AbpApplicationConfigurationOptions:
Configure<AbpApplicationConfigurationOptions>(options =>
{
options.Contributors.AddIfNotContains(new MyApplicationConfigurationContributor());
});
IApplicationConfigurationContributor通过ContributeAsync方法扩展application-configuration端点- 可通过
context.ServiceProvider获取服务并实现自定义逻辑
应用配置贡献者会作为应用配置初始化过程的一部分执行
抠丁客


