react-admin 中可以有多个 dataProviders 吗? [英] Is it possible to have multiple dataProviders in react-admin?
问题描述
如果我有多个不同的 REST API 后端(独立的应用程序做不同的事情),并且我想要一个能够对这些不同后端管理的实体执行 CRUD 的 UI(基于 React 管理的)应用程序,我很好奇是否可以连接 react-admin 来做到这一点.
If I have multiple distinct REST API back-ends (separate apps doing separate things), and I want a single UI (react-admin-based) app that is capable of doing CRUD to entities managed by these various back-ends, I'm curious if it's possible to wire up react-admin to do that.
我想象的不是这个(单个/全局数据提供者):
I'm imagining that instead of this (single/global dataProvider):
const App = () => (
<Admin dataProvider={simpleRestProvider('http://path.to.foo.api')}>
<Resource name="foos" list={FooList} />
</Admin>
);
我们可以这样做(特定于资源的数据提供者):
we could do something like this (resource-specific dataProviders):
const App = () => (
<Admin >
<Resource name="foos" list={FooList}
dataProvider={simpleRestProvider('http://path.to.foo.api')} />
<Resource name="bars" list={BarList}
dataProvider={simpleRestProvider('http://path.to.bar.api')} />
</Admin>
);
无论如何,如果您对我如何在 react-admin 中对多个后端执行 REST 有任何建议,我将不胜感激.
At any rate, if you have advice on how I can do REST to multiple back-ends in react-admin, I'd appreciate it very much.
推荐答案
否,但您可以拥有一个超级数据提供者,它会根据资源选择合适的数据提供者.类似的东西:
No, but you can have a super dataProvivder which would select the appropriate one depending on the resource. Something like:
const dataProviders = [
{ dataProvider: simpleRestProvider('http://path.to.foo.api'), resources: ['foos'] },
{ dataProvider: simpleRestProvider('http://path.to.bar.api'), resources: ['bars'] },
];
export default (type, resource, params) => {
const dataProviderMapping = dataProviders.find(dp => dp.resources.includes(resource));
return dataProviderMapping.dataProvider(type, resource, params);
}
这篇关于react-admin 中可以有多个 dataProviders 吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!