@Fly3110
web developer

Какие инструменты использовать для интеграции с api на отдельном домене посредством javascript?

Всем привет!

Дано: Есть RESTful API на отдельном домене. И есть сайт, на котором это API надо использовать.
Я хочу сделать, чтобы общение с api было организовано посредством javascript, прямо из клиентского браузера.
То есть, для создания пользователя, допустим, мы не сабмитим форму, чтобы потом был запрос с сервера к api, а сразу отправляем запрос к api посредством javascript.

Такая схема для меня нова, поэтому прошу совета, как обычно это организовывается. Есть ли какой-то признаный лидер в javascript RESTful API клиентах? Как обычно организуют прорисовку результата/следующего шага? Поясню, допустим, после сабмита формы, при успехе, надо отрисовать вторую форму, немаленькую. Нормально ли, при получении положительного ответа от api, сделать запрос к своему серверу для получения верстки/шаблона следующего шага?
Ну и на что вообще надо обратить внимание?
Я понимаю, что все можно написать руками, но зачем заново изобретать велосипед :)

Заранее спасибо.
  • Вопрос задан
  • 843 просмотра
Решения вопроса 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
> Есть ли какой-то признаный лидер в javascript RESTful API клиентах?
Все приличные фреймворки умеют REST в той или иной степени (Backbone/Angular/Ember).

> Как обычно организуют прорисовку результата/следующего шага?
Получили данные —> обновили модель —> модель пнула вьюху, чтобы она перерендерилась.

> Нормально ли, при получении положительного ответа от api, сделать запрос к своему серверу для получения верстки/шаблона следующего шага?
Проще будет грузить все ресурсы сразу и потом показывать нужное — меньше возни с асинхронностью. Но если объем большой, то имеет смысл грузить по мере потребности.

Чтобы с другого домена ходить за данными, надо чтобы сервер с API умел отдавать CORS-заголовки, а браузер умел их спрашивать (то есть IE9- в пролете). Обойти это можно с помощью JSONP, как верно заметил Dmitry, но опять же сервер с API должен поддерживать JSONP.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
p00h
@p00h
Фехтовальщик-стропальщик
Для формирования запросов достаточно иметь jquery:
$.ajax({
    url: 'http://example.com/',
    type: 'PUT',
    data: 'id=1&name=Valera',
    success: function() { console.log('PUT completed'); }
});

Однако, это будет работать только в случае, если разрабатываемая страница пришла с того же домена.
Если же вы разрабатываете страницу, которая загружается с example.com и хочет сделать ajax запрос на somehost.com — здесь только JSONP.
Ответ написан
Ваш ответ на вопрос

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

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