2011-05-23 8 views
11

Estoy buscando crear una API para que otros sitios puedan acceder a los datos de mi aplicación web.Cómo escribir una API de JavaScript?

No he podido encontrar ningún recurso en línea que explique el proceso de creación de su propia API de JavaScript.

Quiero aprender cómo configurar la autenticación, transmisión de datos, etc.

¿Cómo escribo mi propia API de JavaScript?

¿Hay algún buen tutorial que explique el proceso de creación de una API de JavaScript como la API de GData o la API de YouTube?

De hecho haré esto en 2 aplicaciones diferentes. Uno está en un servidor apache con Tomcat, MySQL y Java. El otro está en apache con MySQL y PHP. El front-end está escrito en javascript a través del cual interactúa con el back-end. Ya comencé a escribir la biblioteca que usarán para interactuar con nuestras funciones.

+4

¿ya tiene el componente del lado del servidor a través del cual se conectaría la API de JavaScript? ¿O tiene la intención de inspeccionar directamente sus páginas HTML? – Matt

+0

No tengo componente del servidor, pero puedo hacerlo. Depende de qué es mejor o más fácil. Puedo hacer cualquiera de los dos, pero me inclino por inspeccionar las páginas HTML. – UpHelix

+0

Bien g'damn ¡Lo encontré útil! –

Respuesta

7

Esta es una pregunta muy general/genérica, y como tal solo obtendrá respuestas muy genéricas/amplias. Es difícil hacer recomendaciones sin saber qué tecnologías del lado del servidor está utilizando, cómo está actualmente estructurado, cuánto trabajo se hace en comparación con cuánto se debe hacer (relevante por cuánto esfuerzo se necesitaría llevar a cabo un acercamiento otra), etc.

No estoy familiarizado personalmente con GData o las API de YouTube, por lo que desconozco sus técnicas. Sin embargo, puedo hacer las siguientes recomendaciones personales:

1) Le sugiero que evite la inspección directa de HTML de su página y en su lugar recomiende una API del lado del servidor para complementar su API del lado del cliente. Específicamente, consideraría un RESTful like approach donde tratas tus entidades/datos como recursos sobre los cuales deseas actuar.

Este enfoque tiene la ventaja de ser independiente de la representación de vista/HTML real de su página, y por lo tanto más resistente a los cambios. Si escribe una API directamente en su HTML, cada vez que cambie su página (incluso si el contenido/datos sigue siendo el mismo), correrá el riesgo de romper la API.

Otra ventaja de tener un componente del lado del servidor es que usted podría aprovechar el JSONP que puede aliviar algunos de los dolores involucrados al realizar solicitudes entre dominios. Sin embargo, una de las desventajas de JSONP es que no puede realizar solicitudes POST, solo solicitudes GET, que no se ajustan por completo a un enfoque RESTful (pero sigo creyendo que una arquitectura RESTful ofrece muchos beneficios).

2) La transmisión de datos es una recomendación fácil. Indiscutiblemente elegiría JSON. Hay algunos escenarios en los que XML puede ser un formato de datos más apropiado sobre JSON, pero, en general, creo que encontrará que JSON se adaptará a sus necesidades bastante bien.

3) La autenticación del lado del cliente puede ser difícil para las solicitudes entre dominios. Una opción aquí es usar un iframe para hacer la autenticación. Otra opción es usar HMAC o OAuth.

4) En cuanto a la escritura de la API de JavaScript, recomendaría leer algunos de los hilos aquí en SO con respecto a JavaScript books. Es probable que incluya discusiones sobre el espacio de nombres y otros temas útiles para organizar una API.

Como dije, estas son recomendaciones muy genéricas.Podría ser su caso de uso lo hará bien con un raspado de HTML rápido y sucio (aunque es probable que necesite utilizar IFrames para evitar las limitaciones entre dominios). Lo que he mencionado anteriormente, tomado en su conjunto, no es una tarea trivial, especialmente si ninguno de estos elementos está en su lugar en este momento.

+0

Gracias, esta es prácticamente toda la información que necesitaba para comenzar. Actualicé mi pregunta con las tecnologías que estoy ejecutando, para su información. – UpHelix

+0

Aquí hay una gran página para cualquiera que quiera implementar OAuth, solo elija su idioma e implemente la biblioteca: http://oauth.net/code/. Y si solo buscas entender mejor a OAuth: http://oauth.net/ – UpHelix

Cuestiones relacionadas