2010-03-31 18 views
7

para empezar, conozco C++, C#, Python, algo de Ruby y Javascript básico. De todos modos, mi pregunta gira en torno a cómo interactuar con las API RESTful a través de Javascript. No he podido encontrar buenos ejemplos en varios sitios web, así que he venido aquí.interactuando con API RESTful a través de Javascript?

Así que mi pregunta básica es: ¿Cómo puedo interactuar con las API RESTful a través de JS? ¿Y dónde puedo averiguar cómo implementar OAuth en JS? Yo sé cómo conseguir las llaves y tal, pero no cómo realmente codificarlos en

A continuación se muestra un ejemplo de una actualización de estado API de Twitter ejecutar desde mi terminal MAC con curl:.

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

¿Cómo puede Implemento esto en Javascript (preferiblemente con autenticación OAuth)? Esto al menos me haría comenzar a ir en la dirección correcta.

Gracias tanto !!

Respuesta

7

El problema es que tendrá que usar AJAX para consultar la API REST remota, y AJAX solo puede consultar recursos en el mismo dominio que la página. Por lo tanto, una solicitud al api.twitter.com fallará porque está en un dominio diferente al de su servidor.

Para corregir esto, deberá codificar su servidor para realizar la solicitud a twitter. Sin embargo, puede crear sus propios apéndices AJAX que aceptarán datos directamente desde su página, y luego compilar/enviar solicitudes al lado del servidor de Twitter utilizando los datos proporcionados por su cliente.

6

En general, el enfoque de Justin es el correcto, sin embargo, si debe hacer que su script de cliente interactúe con el servicio REST, puede hacerlo con JsonP. eso es información JSON envuelta en una llamada a función.

ver esta página cómo hacerlo http://www.ibm.com/developerworks/library/wa-aj-jsonp1/

1

OAuth versión 1.0 en JavaScript es una mala idea ya que es necesario para exponer clave secreta de la aplicación, al hacerlo, se le puede permitir a cualquiera otra persona se haga pasar por su solicitud. OAuth 1.0 fue diseñado para ser utilizado con un servidor bajo su control. Por lo tanto, sus usuarios pueden enviar sus tokens a su servidor y luego enviar la solicitud a Twitter en su nombre.

OAuth 2.0 resuelve esto aunque twitter does not support it yet.

Si realmente quiere OAuth 1.0 que utiliza mi plugin: https://github.com/jpillora/jquery.rest y también realizar el cambio especificado en this GitHub issue

Cuestiones relacionadas