Взаимодействуете с RESTful API через Javascript? - PullRequest
7 голосов
/ 31 марта 2010

для начала я знаю C ++, C #, Python, немного Ruby и базовый Javascript. Во всяком случае, мой вопрос вращается вокруг того, как взаимодействовать с RESTful API через Javascript. Я не смог найти хороших примеров на разных сайтах, и поэтому я пришел сюда.

Итак, мой основной вопрос: как мне взаимодействовать с RESTful API через JS? И где я могу узнать, как реализовать OAuth в JS? Я знаю, как получить мои ключи и тому подобное, но не знаю, как на самом деле их кодировать.

Ниже приведен пример обновления статуса Twitter API, запущенного с моего MAC-терминала с помощью curl:

curl -u username:password 
-d "my tweet" 
http://api.twitter.com/1/statuses/update.json

Как я могу реализовать это в Javascript (желательно с аутентификацией OAuth)? Это, по крайней мере, заставило бы меня двигаться в правильном направлении.

Большое спасибо !!

Ответы [ 3 ]

7 голосов
/ 31 марта 2010

Проблема в том, что вам потребуется использовать AJAX для запроса удаленного API REST, а AJAX может запрашивать ресурсы только в том же домене, что и страница. Таким образом, запрос к api.twitter.com не будет выполнен, поскольку он находится в другом домене, чем ваш сервер.

Чтобы исправить это, вам нужно будет написать свой сервер, чтобы отправить запрос в твиттер. Однако вы можете создать свои собственные заглушки AJAX, которые будут принимать данные прямо с вашей страницы, а затем создавать / отправлять запросы на серверную часть Twitter, используя данные, предоставленные вашим клиентом.

6 голосов
/ 31 марта 2010

Обычно подход Джастина является правильным, однако, если вам необходимо, чтобы ваш клиентский скрипт взаимодействовал со службой REST, вы можете сделать это с JsonP. это данные JSON, заключенные в вызов функции.

см. Эту страницу, как это сделать http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

1 голос
/ 13 февраля 2013

OAuth версия 1.0 в JavaScript - плохая идея, потому что вам нужно раскрыть секретный ключ вашего приложения, тем самым вы можете позволить кому-то другому выдавать себя за ваше приложение. OAuth 1.0 был предназначен для использования с сервером под вашим контролем. Таким образом, ваши пользователи могут отправлять свои токены на ваш сервер, а затем вы отправляете запрос в твиттер от их имени.

OAuth 2.0 решает эту проблему, хотя twitter пока не поддерживает его .

Если вы действительно хотите OAuth 1.0, вы используете мой плагин: https://github.com/jpillora/jquery.rest, а также вносите изменения, указанные в этой проблеме GitHub

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...