Должен ли React-admin dataProvider применять форматирование данных? - PullRequest
0 голосов
/ 22 января 2019

Вопрос носит концептуальный характер, если dataProvider применяет форматирование к данным перед возвратом их в веб-интерфейс response-admin, или dataProvider должен играть роль только для средства извлечения данных и всегда должен возвращать данные в формате, полученном из конец службы? Что ты думаешь?

Что бы вы сделали, если бы вы получили данные из внутреннего интерфейса, глубоко вложенные, в сложной структуре, и вам нужно, чтобы они были проще для отображения? Где бы вы уменьшили / отформатировали его:

  1. В dataProvider, сразу после получения его с сервера и перед отправкой в ​​пользовательский интерфейс React-admin, или
  2. В пользовательском интерфейсе (a.k.a. Представление ресурсов) или, может быть,
  3. При использовании специального редуктора: https://marmelab.com/react-admin/Actions.html#using-a-custom-reducer

Как, на ваш взгляд, самый элегантный и концептуально правильный способ сделать это?

1 Ответ

0 голосов
/ 22 января 2019

Краткий ответ: Вы можете сделать оба в зависимости от ваших потребностей.

На самом деле это хороший вопрос, ответ может быть таким: это зависит от варианта использования.

Во-первых, если вы говорите об общем поставщике данных, связанном с определенным форматом API (скажем, ODATA или GraphQL), то лучше преобразовать данные в поставщике данных. Тем более, если этот поставщик данных с открытым исходным кодом.

Как документация гласит :

[Поставщик данных] - это место для перевода запросов данных в запросы HTTP и ответов HTTP в ответы данных.

Тем не менее, если вы говорите о конкретном поставщике данных, который создан для вашего собственного пользовательского API (или комбинации, или API), вы можете сделать и то и другое: преобразование поставщика данных или использование пользовательских редукторов, или оба.

Нет ничего плохого в том, чтобы преобразовывать данные в поставщике данных. Вам просто нужно знать, что React Admin кеширует данные из провайдера в своем хранилище с избыточностью и выполняет некоторые причудливые вещи, такие как оптимистичный рендеринг или отмена действий .

...