Какие есть и какой лучше Вариант(ы) Web — фронтэнда(клиента) для REST-сервера ?

Здравствуйте!
Пытаюсь создать свой первый RESTful сервис, как в учебных, так возможно и "не только" целях :)) . Но пока только проектирую. по возможности ...
Вроде как картина вырисовывается, но прочитав кучу статей и комментов... не нашёл достаточной информации о клиенте ( даже странно это выглядит, почему этот аспект не описывается подробно, везде описывают как создать RESTful сервер, но ничего про клиент).

Я представляю себе это так -
Есть REST сервер, можно написать на PHP слой который будет "курлами"(curl) обращаться к REST-серверу, получать JSONчики, ну и отдавать браузерам (юзерам) то, что они хотят увидеть ( или то что мы хотим им показать).

Вопрос(ы): правильно ли я мыслю? Насколько адекватно это в плане производительности ? Не "медленно" ли это, ведь в итоге мы получаем "двойные" запросы. Т.е. я обращаюсь сначала к ПХП серверу что бы он обработал запрос и отправил новый запрос на сервер REST и т.д. и т.п. со всеми вытекающими, типа - парс ответа, генерация его в объект, что бы дальше работать с ним.

Но вот я наткнулся на один вопрос и ответ к нему - ВОТЪ.
Вкратце там предлагается всю работу вынести в JS с AJAX запросами к REST серверу, и строить отображение по средствам JS-а.

Вопрос(ы): насколько эти варианты адекватны? И в комментариях к вопросу в ссылке кстати хороший вопрос - что если мне нужно что бы интернет-боты могли смотреть страницы.
Какие есть еще варианты? Какие "правильные" или "лучшие" методики/практики в этом?
  • Вопрос задан
  • 3441 просмотр
Пригласить эксперта
Ответы на вопрос 3
AMar4enko
@AMar4enko
Все перечисленные вами варианты имеют право на существование:
- и обращение к RESTful сервису со стороны сервера, дабы получить нужную информацию и сформировать из нее статический html
- и обращение к RESTful сервису непосредственно из браузерного скрипта, который самостоятельно будет визуализировать полученные данные

Но важно понять следующее - когда у вас есть RESTful-сервис, к нему могут обращаться серверы, браузерные Single Page Javascript Applications, мобильные приложения, и даже десктопные клиенты, в то время как обычный сайт ориентирован только на доставку HTML-контента, сгенерированного на стороне сервера, и любая интеграция, которая органично выполняется при налиии RESTful-сервиса, выливается в дополнительную головную боль.
Ответ написан
Комментировать
Lexxtor
@Lexxtor
PHP, Yii2, Android
Тоже интересует этот вопрос про поисковых ботов.
Недавно на codeschool.com начал изучать Angular.JS он как раз для REST API хорошо подходит, рендерит страницы из JSON, для этого в HTML вставляются спец атрибуты и выражения в скобках. Но для того чтобы интернет-боты индексировали сайт люди делают пререндеринг всех страниц с помощью специальной библиотеки phantomjs и хранят их на сервере. Это некрасивое костыльное решение, я считаю.
Я думаю что варианты решения такие:
- Сделать обычный фронт-энд, который при наличии JS превращается в JS приложение, работающее через Ajax c RESTful API.
- Ждать пока боты научатся выполнять JS.
- Вместо пре-рендеринга сделать простенький просмотр контента, с меню и пагинацией.
Ответ написан
вам знакомо `single page application` все работает на клиенте, сервер только отдает json по средствам restfull, а html строиться на клиенте по средствам js, а гуглу мы будем отдавать html с помощью node.js или jvm.

p/s - reactjs очень подходит для данных целей.

api - facebook.github.io/react
вот хороший доклад по реакту www.youtube.com/watch?v=aFUiULAC6zk
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы