我是NgRx的新手。经过初步研究,NgRx尤其是NgRx数据包似乎非常适合我正在研究的应用程序。需要注意的是,我们的实体受到具有非常规路线的微服务的支持。
每个实体都有自己的微服务,并且所有操作都通过URL参数中的基本记录ID进一步隔离。
[microServiceRoute]/[baseRecordId]/entityEndpoint
我有一个查找路线的表,但是baseRecordId
将保存在商店中。 NgRx数据文档有一个简单的示例,概述了URLGenerator的替换。
如何在每个实体的基础上指定我的微服务路由,同时还要从商店读取此生成器?可以轻松做到这一点吗?还是应该从每个实体的定制服务角度来解决这个问题?
https://ngrx.io/guide/data/extension-points#replace-the-httpurlgenerator
答案 0 :(得分:1)
完全正确,您需要实现自己的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,
}]
})