Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Несколько вопросов связанных с REST / 18 сообщений из 18, страница 1 из 1
27.08.2014, 16:22
    #38730638
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
Планируется сделать RESTful приложение на laravel, которое будет отдавать данные по запросу, или выводить в браузер. Прежде REST в приложениях использовать не приходилось, поэтому есть ряд моментов, которые мне не совсем понятны. Подскажите пожалуйста решение, или покажите, где подобные вопросы рассматриваются детально.

Вопрос первый.
По умолчанию laravel возвращает данные в html. Если мне нужно получить эти данные в формате JSON, то я в Content-Type заголовка должен указать, что мне нужен JSON, а в контроллере фреймворка проверять значение заголовка и возвращать соответствующий формат. Правильно?

Вопрос второй.
Данные, которые выводит приложение в браузер, должны быть доступны только зарегестрированным пользователям. Как это делать в принципе понятно. Но также необходимо дать возможность получать эти данные сайту сделаному на Drupal. Пока что такой сайт один, но позже добавится еще несколько других сайтов, которые будут запрашивать эти данные, потом и мобильное приложение появится. Как сделать так, чтобы данные из приложения могли получить только опеределенные сайты? Я не могу сообразить, как определять, на какой запрос вернуть данные, а на какой отказать? Как сайты, запрашивая данные, должные себя идентифицировать? Как в принципе такие вещи делаются?

P.S. Может это и не важно, но на сервере, где будет стоят RESTful приложение, HTTPS нет и не предвидится.
...
Рейтинг: 0 / 0
27.08.2014, 19:25
    #38730888
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
bob_j,

Ответ на вопрос первый: читаем мануал

Ответ на вопрос второй: любой запрос к RESTful сервису можно подписать уникальным токеном, правила формирования которого известны клиенту и серверу. Формируется (обычно) путем создания хеша от каких-нибудь данных + суперсекретной соли, которую знают клиент и сервер. Если токен от клиента не совпал с серверным -> отказать.
...
Рейтинг: 0 / 0
27.08.2014, 21:06
    #38730957
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
MikkiMouseлюбой запрос к RESTful сервису можно подписать уникальным токеном, правила формирования которого известны клиенту и серверу.
С токеном понятно, я так и думал. Я не соображу как его передать? Как один из параметров запроса? Где можно почитать/посмотреть подобные примеры реализации?
...
Рейтинг: 0 / 0
27.08.2014, 22:12
    #38730978
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
bob_j,

Ну как один из гет-параметров передать.
Реализация простейшая. Пример запроса:

Код: html
1.
http://site.com/restapi/someMethod?a=1&b=4&token=12345678abcdef9012345678abcdef90



token формируем -
Код: php
1.
md5("someMethod?a=1&b=4"."{salt}");
...
Рейтинг: 0 / 0
27.08.2014, 22:38
    #38730995
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
MikkiMouseНу как один из гет-параметров передать.

Спасибо. Вы подтвердили мои предположения.
...
Рейтинг: 0 / 0
28.08.2014, 18:26
    #38732059
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
Возвращаюсь к первому вопросу. Я имел в виду не то, как мне в laravel-приложении сформировать ответ в JSON формате, а как запросить от laravel-приложения ответ JSON формате?
...
Рейтинг: 0 / 0
28.08.2014, 21:31
    #38732180
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
bob_j,

То есть?
Что значит запросить?
Приложение же ты делаешь? Получил массив, скормил в
Код: php
1.
Response::json()

, вернул. От он тебе и JSON
Или хде? Или что?
...
Рейтинг: 0 / 0
28.08.2014, 21:55
    #38732201
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
MikkiMouseЧто значит запросить?
Приложение же ты делаешь?
Запросить - значит, что у меня в приложении есть метод например get_articles вызывается через myapp.com/articles . Браузер просит вернуть результат в html, но если я из мобильного приложения, или с другого сайта запрошу этот же myapp.com/articles, то мне однозначно html не нужен, а вот JSON самое то. Как мне в get_articles определить в каком формате вернуть результат? Я думаю, что в запрашивающем сайте/приложении надо при отправлении запроса в Content-Type установить JSON, или я что-то усложняю, или не догоняю? Я понимаю, что вопрос элементарный, но я почему-то в него уперся.
...
Рейтинг: 0 / 0
28.08.2014, 22:22
    #38732213
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
bob_j,

Видимо, тебе надо разделить сайт и апи. Так обычно все нормальные люди делают.
То есть на запрос
Код: html
1.
http://myapp.com/articles

отдавать HTML,
а на
Код: html
1.
http://myapp.com/restapi/articles

- JSON. Или че?
...
Рейтинг: 0 / 0
28.08.2014, 22:55
    #38732225
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
MikkiMousebob_j,

Видимо, тебе надо разделить сайт и апи. Так обычно все нормальные люди делают.
То есть на запрос
Код: html
1.
http://myapp.com/articles

отдавать HTML,
а на
Код: html
1.
http://myapp.com/restapi/articles

- JSON. Или че?
А как же тогда принцип DRY?
...
Рейтинг: 0 / 0
28.08.2014, 23:18
    #38732239
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
Хотя, да, DRY вполне можно придерживаться и разделив сайт и API. Это я погорячился. MikkiMouse, спасибо за помощь.
...
Рейтинг: 0 / 0
29.08.2014, 00:19
    #38732269
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
bob_j,

В принципе, есть вариант, когда одни и те же данные можно отдавать и для сайта и для АПИ.
И это будет JSON в обоих случаях.
Но тогда надо придумывать, как тот же JSON интерпретировать в HTML в браузере, использовать какой-нибудь JS Templater
У меня до сих пор такого опыта не было. Но это может быть потому, что я не программирую на JS.
Но варианты есть...
...
Рейтинг: 0 / 0
29.08.2014, 00:22
    #38732272
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
MikkiMouse,
JSON воплне можно преобразовать в массив РНР и работать с ним в представлении, но, по-моему, это не комильфо. Можно просто общую логику вынести в приватный метод и просто вызывать его из апишных методов и методов сайта.
...
Рейтинг: 0 / 0
29.08.2014, 00:35
    #38732273
MikkiMouse
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
bob_j,

Я не о том, парень.
JSON, о котором говорю я, не нуждается в преобразовании в PHP-массивы :)
Читай внимательнее. Так как и браузер, и андроид-дивайс - это все суть клиенты, то в принципе неважно, какой клиент запросил данные...
...
Рейтинг: 0 / 0
30.08.2014, 00:34
    #38733212
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
MikkiMousebob_j,

Я не о том, парень.
JSON, о котором говорю я, не нуждается в преобразовании в PHP-массивы :)
Читай внимательнее. Так как и браузер, и андроид-дивайс - это все суть клиенты, то в принципе неважно, какой клиент запросил данные...
Ну да. То что я говорю - это фактически частный случай в разрезе view фреймворка. Я, как бы, проецирую на свою проблему. Ну, или мы где-то не понимаем друг друга.
...
Рейтинг: 0 / 0
04.09.2014, 14:07
    #38737538
Несколько вопросов связанных с REST
Делай запрос
Articles.html
Articles.json
Всех делов то;)

С контент тайп не рекомендовал бы...
...
Рейтинг: 0 / 0
08.09.2014, 22:58
    #38741133
bob_j
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Несколько вопросов связанных с REST
както так...С контент тайп не рекомендовал бы...
Спасибо за совет. А почему с контент тайп не стоит?
...
Рейтинг: 0 / 0
15.09.2014, 15:56
    #38746951
Несколько вопросов связанных с REST
Потому что шаманить в запросе с тайпом гораздо сложнее (или не всегда возможно) чем прямой запрос!;)
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Несколько вопросов связанных с REST / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]