REST API для состояния Redux - Отдельная конечная точка API для состояния Redux? - PullRequest
0 голосов
/ 03 июля 2018

У меня есть API, который возвращает массив объектов, которые он получает из MongoDB.

API:

[
  { _id: b23a, title: "Some Title" },
  { _id: c10x, title: "Some Other Title" },
  { _id: a31w, title: "And even more" },
]

Массив в порядке. Я хотел бы сохранить этот порядок в моем состоянии Redux, однако я также хотел бы иметь возможность доступа ко всем объектам по id. Поэтому я подумал об организации своего состояния следующим образом:

{
  order: ["b23a","c10x","a31w"], //keeps the order
  byId: {
    "b23a" : { _id: b23a, title: "Some Title" },
    "c10x" : { _id: c10x, title: "Some Other Title" },
    "a31w" : { _id: a31w, title: "And even more" },
  }
}

Как лучше всего это сделать? Было бы лучше иметь отдельный маршрут API, который возвращает данные в точном виде, который мне нужен для Redux? Поэтому я бы изменил данные на стороне сервера перед отправкой обратно , а затем просто перевел их в состояние Redux; Или: является ли более распространенным / более эффективным анализ массива на стороне клиента ? Что бы вы обычно рекомендовали?

1 Ответ

0 голосов
/ 03 июля 2018

MongoDB идентификаторы не гарантируют order. Если вы хотите порядок вставки, создайте поле date и получите результаты, отсортированные по полю date в MongoDb

Если вы пытаетесь заказать objects на основе title, это довольно просто, и я бы посоветовал вам сделать это на стороне клиента. Если вы используете библиотеку типа Lodash, это довольно просто, и вам не нужно сохранять порядок тоже. С lodash вы можете сделать это.

data = _.orderBy(array_of_objects, ['title']); 
...