2015-05-21 5 views
4

Итак, я играл в скрипке с некоторым изоморфным React + Flux в последнее время и нашел некоторые понятия, которые сбивают с толку, если честно. Я изучал лучшие практики о том, как структурировать изоморфные приложения и вы ищете советы.Isomorphic React + Flux + REST API

Предположим, вы создаете webapp, а также мобильное приложение, поддерживаемое тем же API REST. Вы связываете свой REST API вместе с webapp? Я видел людей, выступающих за комплектацию и наличие отдельной базы кода для REST API.

Любые советы или рекомендации читаются!

ответ

0

Посмотрим, смогу ли я вам помочь.

Имейте в виду, что изоморфный Javascript является совершенно новым, и трудно найти четкие определения для каждого варианта использования.

По определению, если вы создаете RESTful приложение, которое вы должны иметь четкое разделение между сервером и клиентом:.

«Унифицированный интерфейс отделяет клиентов от серверов Это разделение опасений означает, что, например, , клиенты не занимаются хранением данных , которое остается внутренним для каждого сервера, так что улучшается переносимость клиентского кода . Серверы не связаны с пользовательским интерфейсом или пользовательским состоянием, поэтому серверы могут быть проще и еще масштабируемые. Серверы и клиенты также могут быть заменены ed и разработал независимо, если интерфейс между ними не изменяется ».

Что касается изоморфными приложений, основными преимуществами являются:

  • Не имея пустую страницу, когда пользователь первого входа на сайт (точки для UX)
  • Поэтому SEO дружественных
  • И вы можете использовать одну логику между сервером/клиентом (например, относительно компонентов React)

Это означает, что вы должны доставлять визуализированные компоненты React с сервера на клиент , когда пользователь сначала вводит URL-адрес. После этого вы будете продолжать использовать свой REST API, как обычно, предоставляя все на клиенте.

Если вы можете, поделитесь более подробной информацией о своем случае, и вам будет легче помочь.

4

плавкие (по крайней мере из примеров) не выступает с использованием слоя службы внутри приложения, вызывающий его непосредственно с сервера и с помощью XHR от клиента без дублирования кода https://github.com/gpbl/isomorphic500/blob/master/src/app.js Это пример я следовал неукоснительно при строительстве изоморфное приложение

0

Я бы не рекомендовал вам связывать REST API в браузере, так как вы ограничены использованием совместимых с браузером модулей в вашем API, и вы не сможете совершать прямые вызовы по базе данных.

Существует библиотека, которая делает это так, что вы можете создавать свои API-интерфейсы изоморфно и повторно использовать его на клиенте и сервере без раздувания или взлома. Это то, что мы сейчас используем в большом одностраничном приложении.

Это называется Изоморфин, и вы можете найти его здесь: https://github.com/d-oliveros/isomorphine.

Отказ от ответственности: Я являюсь автором этой библиотеки.

+0

приятная самореклама там :) – syarul

1

Идея очень проста. Предположим, у вас есть SPA и бэкэнд, который предоставляет REST API.

SPA (in browser) <====> Backend REST API 

в изоморфном корпусе, это абсолютно то же самое, за исключением того, что вы также запустите свой SPA на сервере.

Таким образом, он будет работать так:

SPA (in browser) <====> Backend REST API 
SPA (on server) <====> Backend REST API 

Если у вас есть мобильное приложение, то это будет:

SPA (in browser) <====> Backend REST API 
SPA (on server) <====> Backend REST API 
Mobile app  <====> Backend REST API 

Вот реальное изоморфным приложение производства открыла нам в сообщество - https://github.com/WebbyLab/itsquiz-wall. Вы можете просто клонировать его и запускать.

Here is my post, который подробно описывает все идеи, стоящие за приложением.