我是 NgRx 的新手。经过初步研究 NgRx,尤其是 NgRx 数据包似乎非常适合我正在开发的应用程序。需要注意的是,我们的实体由具有非常规路线的微服务支持。
每个实体都有自己的微服务,任何操作都通过 URL 参数中的基本记录 ID 进一步隔离。
[microServiceRoute]/[baseRecordId]/entityEndpoint
我有一个路由查找表,但 baseRecordId
将保存在商店中。 NgRx 数据文档有一个简单示例概述了 URLGenerator 的替换。
如何在每个实体的基础上指定我的微服务路由,同时让这个生成器从商店读取?这可以很容易地完成,还是我应该从每个实体的自定义服务 Angular 来处理这个问题?
https://ngrx.io/guide/data/extension-points#replace-the-httpurlgenerator
最佳答案
你完全正确,你需要实现你自己的 HttpUrlGenerator
类来服务于所需的端点,并在导入 EntityDataModule.forRoot
的模块中提供,例如
providers: [
{
provide: HttpUrlGenerator,
useClass: MyApiHttpUrlGenerator,
},
],
目前有一个更改 API 前缀的配置键,但它不允许为每个实体指定端点:https://ngrx.io/guide/data/entity-dataservice#provide-a-custom-configuration
const defaultDataServiceConfig: DefaultDataServiceConfig = {
root: 'https://my-api-domain.com:8000/api/v1',
}
@NgModule({
providers: [{
provide: DefaultDataServiceConfig,
useValue: defaultDataServiceConfig,
}]
})
关于angular - NgRx 数据自定义 URL 生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61905499/