Трудно найти авторитетную информацию или рекомендации по этому вопросу, но трудно утверждать, что если вы создаете API специально для одного приложения flux/redux и сохраняете данные в нормализованной форме в базе данных, это довольно глупо де-нормализовать его в конечной точке API только для нормализации его прямо после вашего клиента (с использованием normalizr) ... В этом случае просто оставьте данные нормализованными и передайте их по проводу вашему клиенту, как это.
конкретно вы бы что-то вроде этого:
GET /meetings
{
"result": ["1", "2"],
"entities": {
"meetings": {
"1": { "id": 1, "date": "2016-01-01", "attendees": [1, 2, 3] },
"2": { "id": 2, "date": "2016-01-02", "attendees": [2, 3, 4] }
},
"users": {
"1": { "id": 1, "name": "User 1" },
"2": { "id": 1, "name": "User 2" },
"3": { "id": 1, "name": "User 3" },
"4": { "id": 1, "name": "User 4" }
}
}
}
Учитывая, что каждый из этих объектов соответствуют собственности на вашем состоянии, такой ответ является trivial to merge into your store в действии редуктора, используя что-то как Lodash merge:
return _.merge({}, state, action.entities);
Если у вас есть несколько потребителей, вы можете выбрать Ф.О. r a normalize=true
параметр запроса. Вы также можете объединить это с каким-то параметром запроса expand|include=entities,to,include
.
Наконец, обратите внимание, что спецификация API JSON doesn't play nicely с нормализованной структурой хранилищ флюсов/редуктов.
Дальнейшее чтение:
Я ожидал, что ответ, и, конечно, я пытаюсь сделать это. Но есть ценность в понимании того, какая архитектура пользуется наибольшим использованием. Это хорошая отправная точка, и обычно она пользуется наибольшим использованием, потому что она делает что-то правильно. – vkjb38sjhbv98h4jgvx98hah3fef
Поняв, перейдите по этой ссылке, чтобы просмотреть некоторые диаграммы https://github.com/reactjs/redux/issues/653, view -> action -> dispatch -> reducer -> изменение состояния, это то, что сокращение делает для наших государственного управления. Я также рекомендовал бы проверить структуру файлов Ducks для сокращения здесь: https://medium.com/@scbarrus/the-ducks-file-structure-for-redux-d63c41b7035c#.q8ukk13qg –
Спасибо за ответ, но это не так. что я имел ввиду. Я имел в виду, что покоящая архитектура json api (или стандартная, например odata или jsonapi.org) чаще всего используется в сочетании с приложением response/redux. – vkjb38sjhbv98h4jgvx98hah3fef