2012-10-02 24 views
13

Estoy tratando de hacer una aplicación web usando ExpressJS y Coffeescript que extrae datos de las API web de Amazon, LastFM y Bing.
Los usuarios pueden solicitar datos tales como los precios de un álbum específico de una banda específica, las próximas horas de conciertos y lugares para una banda, etc. ... cosas por el estilo.¿Debo hacer solicitudes de API del lado del servidor o del lado del cliente?

Mi pregunta es: ¿debo hacer estas llamadas a la API desde el lado del cliente usando jQuery y getJSON o deberían estar en el lado del servidor? He hecho solicitudes del lado del cliente; ¿cómo podría hacer una llamada API desde el servidor?
Solo quiero saber cuál es la mejor práctica, y también si alguien pudiera orientarme en la dirección correcta para hacer solicitudes API en el servidor, sería muy útil.

Gracias!

Respuesta

2

A menudo es bueno para abstraer el almacenamiento y servicios dependientes de aislar cambios y ofrecen una Web API consolidado y consistente para su aplicación . Pero a veces, si tiene una buena API web de hypermedia (enlace de respuestas RESTful a otros recursos), podría hacer referencia a un enlace de otro servicio en la respuesta de su servicio (por ejemplo, la solicitud SO podría hacer referencia a la imagen gravatar/recurso del usuario). No hay un tamaño único para todos: depende de si desea encapsular la dependencia o integrarse con ella.

Podría ser útil hacer que las solicitudes de API de su servicio estén expuestas a través de expressjs como su propia aplicación web.

Hacer peticiones de http web-api es fácil desde el nodo. Aquí hay otro SO post de que:

HTTP GET Request in Node.js Express

+0

Gracias por el enlace. Voy a intentar esto. También puedo preguntar, ¿dónde pusiste este módulo getJSON en la estructura de tu aplicación? Digamos que no almacenaré los resultados de la llamada a mi base de datos. – aeyang

+0

Además, en su otra publicación, mencionó que tenía una muestra más completa. ¿Esa oferta sigue siendo buena? – aeyang

+0

Claro, para jugar y una presentación, escribí un servicio de descanso para estudiantes que habló con Parse.com con solicitudes http para el almacenamiento: https: // github.com/bryanmacfarlane/nodefun/tree/master/express/helloworld/service – bryanmac

1

bueno, la forma en que lo describe Creo que es posible que desee buscar datos de Amazon, LastFm, etc., procesarlo con un nodo, guardarlo en su base de datos y proporcionar su propia API.

puede utilizar el nodo de http.request() para recuperar los datos y construir su propia API REST con express.js

6

Hay dos consideraciones clave para esta pregunta:

  1. No llamadas incurrir en ningún acceso a los datos? ¿Los resultados solo se escribirán en la pantalla?
  2. Cómo & ¿dónde piensas manejar los errores? ¿Cómo manejas el estrangulamiento?

El elemento n. ° 2 es realmente importante aquí porque los servicios web disminuyen todo el tiempo por una serie de razones. Sus llamadas a Bing, Amazon & Last FM fallarán probablemente 1% o 0.1% del tiempo (según mis experiencias aquí).

Para realizar solicitudes a los usuarios del servidor JS es probable que desee echar un vistazo a Requestpackage on NPM.

+0

Gracias por el enlace. Las dos respuestas debajo de la suya han mencionado 'http.request'. Me pregunto cómo es diferente el paquete 'Request' npm? ¿Es más simple de usar? – aeyang

+0

La biblioteca 'http.request' tiene un acceso de muy bajo nivel. La biblioteca 'Request' en NPM tiene soporte para cosas como OAuth, cookies, transmisión y envíos de formularios. Si intenta enviar las llamadas de proxy a terceros, querrá esta herramienta. –

+0

Gracias. ¡Definitivamente intentaré esto! – aeyang

Cuestiones relacionadas