Upgrade to Pro — share decks privately, control downloads, hide ads and more …

JSConfAr 2012

JSConfAr 2012

Viernes 13: JSON APIs y node.js

Dan Zajdband

May 20, 2012
Tweet

More Decks by Dan Zajdband

Other Decks in Technology

Transcript

  1. VIERNES 13
    JSON APIs y NodeJS
    Dan Zajdband
    @dzajdband
    lunes 21 de mayo de 12

    View full-size slide

  2. JSON
    lunes 21 de mayo de 12

    View full-size slide

  3. lunes 21 de mayo de 12

    View full-size slide

  4. Douglas Crockford
    lunes 21 de mayo de 12

    View full-size slide

  5. Douglas Crockford
    • JSON
    • JSLint
    • JSMin
    • YUI
    • Javascript: The Good Parts
    lunes 21 de mayo de 12

    View full-size slide

  6. JSON
    • Formato de intercambio de datos
    • Sintaxis estilo C
    • Fácil de entender y procesar para
    • Personas
    • Maquinas
    lunes 21 de mayo de 12

    View full-size slide

  7. JSON
    lunes 21 de mayo de 12

    View full-size slide

  8. Archirrival
    a.k.a. XML
    lunes 21 de mayo de 12

    View full-size slide

  9. JSON
    Estructuras de datos
    • Objeto
    • Arreglo
    lunes 21 de mayo de 12

    View full-size slide

  10. JavaScript
    Estructuras de datos
    • Objeto
    • Arreglo
    lunes 21 de mayo de 12

    View full-size slide

  11. JSON
    Otras Estructuras de datos
    • Número
    • String
    lunes 21 de mayo de 12

    View full-size slide

  12. JavaScript
    Otras Estructuras de datos
    • Número
    • String
    lunes 21 de mayo de 12

    View full-size slide

  13. JSON = JavaScript
    Object Notation
    lunes 21 de mayo de 12

    View full-size slide

  14. NodeJS
    lunes 21 de mayo de 12

    View full-size slide

  15. NodeJS
    • JavaScript en el servidor
    • V8
    • non-blocking I/O
    • Especialmente bueno para networking
    • Excelente sistema de módulos
    • Implementación JSON nativa
    lunes 21 de mayo de 12

    View full-size slide

  16. NodeJS
    JSON
    lunes 21 de mayo de 12

    View full-size slide

  17. NodeJS
    Módulo HTTP
    lunes 21 de mayo de 12

    View full-size slide

  18. módulos útiles NodeJS
    ExpressJS
    • Framework (El Sintatra de NodeJS)
    • Routing
    • Middleware (Connect)
    • Soporta 14 sistemas de template
    lunes 21 de mayo de 12

    View full-size slide

  19. módulos útiles NodeJS
    Superagent
    • Ajax with less suck (and node.js HTTP
    client with less suck)
    lunes 21 de mayo de 12

    View full-size slide

  20. módulos útiles NodeJS
    Otros
    • Node Oauth (npm install oauth)
    • Socket.io (npm install socket.io)
    • Redis (npm install redis)
    • up (npm install up)
    • mocha (npm install mocha)
    lunes 21 de mayo de 12

    View full-size slide

  21. Implementando una API
    lunes 21 de mayo de 12

    View full-size slide

  22. Ojo al piojo
    lunes 21 de mayo de 12

    View full-size slide

  23. lunes 21 de mayo de 12

    View full-size slide

  24. Implementando una API
    Ojo al piojo
    • Autenticación
    • Generar tokens
    • Hashes
    • Redis
    • OAuth
    • node-oauth
    lunes 21 de mayo de 12

    View full-size slide

  25. Implementando una API
    Ojo al piojo
    • Limitación de recursos
    • Documentar reglas de limitación
    • Mensajes de error expresivos
    lunes 21 de mayo de 12

    View full-size slide

  26. Manejando requests
    lunes 21 de mayo de 12

    View full-size slide

  27. Manejando requests
    Middleware
    • Express está basado (y usa) Connect
    • Ambos proyectos creados y
    mantenidos por @tjholowaychuk
    lunes 21 de mayo de 12

    View full-size slide

  28. Buscando las manos de
    peron
    lunes 21 de mayo de 12

    View full-size slide

  29. lunes 21 de mayo de 12

    View full-size slide

  30. Manejando requests
    Middleware
    lunes 21 de mayo de 12

    View full-size slide

  31. Restringiendo recursos
    lunes 21 de mayo de 12

    View full-size slide

  32. Manejando requests
    Middleware
    lunes 21 de mayo de 12

    View full-size slide

  33. Manejando requests
    Middleware
    lunes 21 de mayo de 12

    View full-size slide

  34. Streams
    lunes 21 de mayo de 12

    View full-size slide

  35. Manejando requests
    Middleware
    lunes 21 de mayo de 12

    View full-size slide

  36. Consumiendo APIs
    lunes 21 de mayo de 12

    View full-size slide

  37. lunes 21 de mayo de 12

    View full-size slide

  38. Manejo de requests
    lunes 21 de mayo de 12

    View full-size slide

  39. Consumiendo APIs
    Manejo de requests
    • Módulo HTTP de NodejS
    • Request (npm install request)
    • Superagent (npm install superagent)
    lunes 21 de mayo de 12

    View full-size slide

  40. Consumiendo APIs
    Superagent
    • Ajax with less suck (and node.js HTTP
    client with less suck)
    lunes 21 de mayo de 12

    View full-size slide

  41. Consumiendo APIs
    Superagent
    • Streams
    lunes 21 de mayo de 12

    View full-size slide

  42. OAuth
    lunes 21 de mayo de 12

    View full-size slide

  43. Consumiendo APIs
    Node OAuth
    • Implementación de OAuth en NodeJS
    • Autenticación
    • Manejo de requests http, https
    • Manejo de streams
    lunes 21 de mayo de 12

    View full-size slide

  44. Manejo de errores
    lunes 21 de mayo de 12

    View full-size slide

  45. lunes 21 de mayo de 12

    View full-size slide

  46. Endpoints
    lunes 21 de mayo de 12

    View full-size slide

  47. Twitter REST API ~=
    100 endpoints
    lunes 21 de mayo de 12

    View full-size slide

  48. Consumiendo APIs
    Endpoints
    • Mi estrategia
    • Archivos de configuración (JSON) con
    endpoints
    • Aumentar el prototipo del objeto que
    exporta la librería
    lunes 21 de mayo de 12

    View full-size slide

  49. Una cosita más...
    (En realidad son 2)
    lunes 21 de mayo de 12

    View full-size slide

  50. This is Socket.IO guy...
    Do you still trust him?
    lunes 21 de mayo de 12

    View full-size slide

  51. Preguntas?
    lunes 21 de mayo de 12

    View full-size slide

  52. Gracias!
    lunes 21 de mayo de 12

    View full-size slide