是否有可能在react-admin中拥有多个dataProviders?

问题描述 投票:4回答:1

如果我有多个不同的REST API后端(单独的应用程序执行不同的事情),我想要一个能够对由这些不同后端管理的实体进行CRUD的UI(基于反应管理员的)应用程序,我'好奇,如果有可能连接react-admin来做到这一点。

我想象的不是这个(单/全局dataProvider):

const App = () => (
    <Admin dataProvider={simpleRestProvider('http://path.to.foo.api')}>
        <Resource name="foos" list={FooList} />
    </Admin>
);

我们可以做这样的事情(特定于资源的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的建议,我会非常感激。

reactjs react-admin
1个回答
6
投票

不,但您可以拥有一个超级dataProvivder,它可以根据资源选择合适的一个。就像是:

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 dataProvider = dataProviders.find(dp => dp.resources.includes(resource));

    return dataProvider(type, resource, params);
}
© www.soinside.com 2019 - 2024. All rights reserved.