Как подключиться к вложенным путям в React-admin?(например http://my.api.to/users/active) - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть пути API, такие как http://my.api.to/user/active, где / user - это рабочий вызов API, а также / user / active.

Как мне добавить их в , чтобы мой dataProvider принимал его?

Я использую dataprovider по умолчанию для ra-data-json-server с небольшими изменениями.

мой GET_LIST выглядит так:

        case GET_LIST: {
            const { page, perPage } = params.pagination;
            const { field, order } = params.sort;
            const query = {
                ...fetchUtils.flattenObject(params.filter),
                //filter: JSON.stringify(params.filter),
                sort: field,
                order: order,
                start: (page - 1) * perPage,
                end: page * perPage,
            };
                url = `${apiUrl}/${resource}?${stringify(query)}`;
            }
            break;
        }

Я также безуспешно пытался настроить URL на основе имени ресурса:

        case GET_LIST: {
            const { page, perPage } = params.pagination;
            const { field, order } = params.sort;
            const query = {
                ...fetchUtils.flattenObject(params.filter),
                //filter: JSON.stringify(params.filter),
                sort: field,
                order: order,
                start: (page - 1) * perPage,
                end: page * perPage,
            };
            if (resource === 'clicks/monthly'){
                url = `${apiUrl}/clicks/monthly?year=2019&${stringify(query)}`;
            } else {
                url = `${apiUrl}/${resource}?${stringify(query)}`;
            }
            break;
        }

Не могли бы вы помочь?

1 Ответ

0 голосов
/ 24 февраля 2019

Попробуйте назвать свой ресурс без косой черты, например: users-active

  <Admin
        dataProvider={jsonServerProvider('http://my.api.to')}
        dashboard={Dashboard}
    >
         <Resource name="users" icon={UserIcon} list={UserList}  options={{ label: 'All users' }}/>
         <Resource name="users-active" icon={UserIcon} list={UserList} options={{ label: 'Active users' }}/>
    </Admin>

В вашем поставщике данных вы сможете перенаправлять вызов по своему усмотрению:

     case GET_LIST: {
        const { page, perPage } = params.pagination;
        const { field, order } = params.sort;
        const query = {
            ...fetchUtils.flattenObject(params.filter),
            //filter: JSON.stringify(params.filter),
            sort: field,
            order: order,
            start: (page - 1) * perPage,
            end: page * perPage,
        };
        if (resource === 'users-active'){
                url = `${apiUrl}/users/active?${stringify(query)}`;
            } else {
                url = `${apiUrl}/${resource}?${stringify(query)}`;
        }
        break;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...