Как организовать взаимодействие с серверным API?

Разрабатываю проект, в котором есть серверная часть работающая по API и клиентская часть на React + Redux.
Стараюсь их ничем не связывать что бы в дальнейшем они не зависели друг от друга.

Так как с React я знаком мало, вопрос:

Как мне организовать роутинг в React? Делать одну точку входа, а дальше роутинг или делать под каждый "ресурс" свою точку входа?
Как вообще организовать грамотно API + React?

P.S. проект планируется большой (если это имеет значение), так же часть страниц надо будет рендерить на сервере (для seo)
  • Вопрос задан
  • 814 просмотров
Решения вопроса 1
Eastman
@Eastman
Frontend's Zen
Могу по этой ссылке предложить, как пример, свой проект, пока еще не доработанный, но в котором довольно легко можно увидеть архитектуру постройки приложения.
Стоить заметить, что такую же архитектуру я использую на большом коммерческом проекте с API/React/Redux, то есть, полностью подходящим к вашему описанию.
Коротко о приложении:
  1. Бандл разделен на vendors и ваш код
  2. Роутинги организованы в виде plain-objects с динамической подгрузкой ресурсов на каждом роуте - это довольно неплохо дробит бандл с вашим кодом
  3. Redux код спроектирован по паттерну redux-ducks. Мне облегчило жизнь, надеюсь и вам поможет.

Связь приложения с API, опять же, коротко:
Есть smart и dumb компоненты. Smart-компоненты вызывают необходимые actionCreator'ы из папки redux/modules. ActionCreator'ы обращаются в соответсвующий модуль в папке api, где происходит обращение к серверу, откуда в Promise'ах возвращаются данные опять же в actionCreator, где action диспатчится с данными, после чего reducer обновляет данные в store. Smart-компонент обновляется и обновляет все свои dumb-компоненты, которые включенные в него, передавая им полученные данные.
Используя написанное, пройдитесь по коду и надеюсь все прояснится. Удачи.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы