Есть изоморфное React-приложение, которое крутится на Node.js + Express сервере. Данные забираются/отдаются через JSON API на Rails.
Хочу послушать мнения каким образом лучше организовать поток запросов к API.
Вариант #1![5873bce3032b42abbd62b413e5c6045d.png](//habrastorage.org/files/587/3bc/e30/5873bce3032b42abbd62b413e5c6045d.png)
Первый запрос от клиента уходит на Node.js сервер (1-2), который делает http-запрос с сервера к Rails API (3). Получает от него данные (4). React рендерит html и отправляет его клиенту (5-6). Далее клиент уже делает ajax-запросы напрямую к API (7-8).
В этом варианте API-серверу придется принимать CORS-запросы.
Вариант #2![65e748a51318412b9babac4215787b55.png](//habrastorage.org/files/65e/748/a51/65e748a51318412b9babac4215787b55.png)
К Node.js/Express добавляется прослойка, которая принимает все запросы на локальный адрес
/api (3) и проксирует их на API (4). Соответственно все запросы (в том числе и ajax с клиента) принимает Express, который делает серверный запрос к API. Таким образом убиваем CORS, но удлиняем цепочку.
С точки зрения безопасности
вариант #2 предпочтительнее. Но как он с других точек зрения по сравнению с
вариантом #1?
UPDATE
Вот тут описано как:
@medium
Вот тут pet-production по описанной схеме:
alexfedoseev.com