3

我是 NgRx 的新手。经过初步研究,NgRx 尤其是 NgRx 数据包似乎非常适合我正在开发的应用程序。需要注意的是,我们的实体由具有非常规路线的微服务支持。

每个实体都有自己的微服务,任何操作都通过 URL 参数中的基本记录 ID 进一步隔离。

[microServiceRoute]/[baseRecordId]/entityEndpoint

我有一个路线查找表,但baseRecordId会保存在商店里。NgRx Data 文档有一个简单的示例,概述了 URLGenerator 的替换。

如何在每个实体的基础上指定我的微服务路由,同时还让这个生成器从存储中读取?这可以轻松完成还是我应该从每个实体的自定义服务的角度来解决这个问题?

https://ngrx.io/guide/data/extension-points#replace-the-httpurlgenerator

4

1 回答 1

3

您是完全正确的,您需要实现自己的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,
  }]
})
于 2020-05-20T16:03:52.940 回答