SlideShare una empresa de Scribd logo
1 de 15
Documentando APIs 
Ezequiel Gonzalez Rial 
gonrial@gmail.com 
@gonrial DevSpark
Que es una API? 
Interfaz de Programación de Aplicaciones 
Describe funcionalidades 
independientemente de su implementación 
Ejemplos: 
– Aplicación ↔ Librería. 
– Ente 2 procesos en ejecución (dependen del SO) 
– Procesos que corren entre distintas máquinas
Webservices 
• Servicios que se comunican usando usando 
internet 
• Primeros intentos de web services: SOAP 1998 
• Deriva de un protocolo creado por Dave Winer 
en 1998, llamado XML-RPC. 
• SOAP fue creado por Microsoft, IBM y otros. 
Está actualmente bajo el auspicio de la W3C, 
mantenido por el XML Protocol Working Group.
El crecimiento y caída de 
SOAP / WSDL / UDDI 
• XML hasta en la SOPA!!!! (cuac) 
• 1998: SOAP (Simple Object Access Protocol) es un 
protocolo estándar que define cómo dos objetos en 
diferentes procesos pueden comunicarse por medio de 
intercambio de datos XML. 
• 2000: WSDL (Web Services Description Language), un 
formato XML que se utiliza para describir servicios Web. 
• 2000: UDDI (Universal Description, Discovery and 
Integration) permite registrar y buscar servicios en un 
catálogo: Páginas blancas, Páginas amarillas, Páginas 
verdes.
REST al rescate 
• Representational State Transfer 
• Primera vez que se lo nombra Defensa de 
Tesis de Doctorado, Roy Fielding, 2000 
• Ayudante de Tim Berners-Lee escribiendo la 
especificación de HTTP/1.1 
• Recomendable para leer!
Características de una API-REST 
• Basado en HTTP 
• Interfase Uniforme 
• Recursos 
• Manipulación de recursos a través de representaciones 
• Mensajes auto-descriptivos 
• HATEOAS: Hypermedia as the Engine of Application State 
• Sin-estado 
• Cacheable 
• Sistema de Capas
Herramientas para documentar 
API-REST 
Swagger
Swagger 
• Una especificación y un framework que permite 
describir, producir, consumir y visualizar 
servicios RESTful. 
• Centrado en la especificación. 
• Independiente del lenguaje. 
• Librerías para múltiples lenguajes y 
generadores de código 
– NodeJS usando Express. 
• Herramientas de terceros: Apigee-127
RESTful API Modeling Language 
• Es una especificación y un framework. Permite 
describir de forma rápida y simple. Permite el 
descubrimiento de endpoints y el reuso de 
comportamientos, y pretende que emerjan las 
mejores practicas. 
• Desarrollado por Mulesoft 
• Hosteado (SaaS) 
• No tiene un soporte nativo de Nodejs.
API Blueprint 
• Centrado en el ciclo de vida de una API. 
Permite que se discuta la API con otros. 
Genera documentación y conjuntos de pruebas 
de forma automática. 
• Hosteado (SaaS)
Postman 
• Herramienta que permite inspeccionar APIs y 
guarda un historial de consultas. 
• Inicialmente extensión de Google Chrome. 
• Permite organizar las consultas realizadas y 
puede generar un documento resultado. 
• Definición de un workflow de trabajo.
Recomendaciones 
para una buena API-REST 
• Usar los códigos de estado de HTTP (rfc2616) 
• Versionar la API 
– URL (/v1/...) o encabezados 
• Usar sustantivos, no verbos 
• Usar la forma plural 
• GET y HEAD no deben alterar el estado 
• Usar recursos anidados
Recomendaciones 
para una buena API-REST 
• Paginar 
– Usar query strings 
– Las paginas son recursos 
– Usar encabezados HTTP (Github) 
• Links para HATEOAS 
– Custom vendor media type (no escala) 
– HAL 
– Xlink 
– Collections+JSON 
• Devolver siempre un mensaje de error consistente
Preguntas? 
Ezequiel Gonzalez Rial 
gonrial@gmail.com 
@gonrial
Muchas Gracias!

Más contenido relacionado

La actualidad más candente

REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAPea2014G3
 
Groopify para groopies
Groopify para groopiesGroopify para groopies
Groopify para groopiesGroopify
 
201406 presentación alfresco healthpoint
201406 presentación alfresco healthpoint201406 presentación alfresco healthpoint
201406 presentación alfresco healthpointAquilino García Martos
 
Modulariza tus aplicaciones Grails - Springio 2012
Modulariza tus aplicaciones Grails - Springio 2012Modulariza tus aplicaciones Grails - Springio 2012
Modulariza tus aplicaciones Grails - Springio 2012Dani Latorre
 
Replica Sets en MongoDB
Replica Sets en MongoDBReplica Sets en MongoDB
Replica Sets en MongoDBEl Taller Web
 
ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013Rodolfo Finochietti
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTBEEVA_es
 
Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2El Taller Web
 

La actualidad más candente (12)

REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
 
Groopify para groopies
Groopify para groopiesGroopify para groopies
Groopify para groopies
 
Android web services - Spring Android
Android web services - Spring AndroidAndroid web services - Spring Android
Android web services - Spring Android
 
SQLite
SQLiteSQLite
SQLite
 
Sq lite
Sq liteSq lite
Sq lite
 
201406 presentación alfresco healthpoint
201406 presentación alfresco healthpoint201406 presentación alfresco healthpoint
201406 presentación alfresco healthpoint
 
Modulariza tus aplicaciones Grails - Springio 2012
Modulariza tus aplicaciones Grails - Springio 2012Modulariza tus aplicaciones Grails - Springio 2012
Modulariza tus aplicaciones Grails - Springio 2012
 
ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3ASP.NET MVC Workshop Día 3
ASP.NET MVC Workshop Día 3
 
Replica Sets en MongoDB
Replica Sets en MongoDBReplica Sets en MongoDB
Replica Sets en MongoDB
 
ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013ALM con Visual Studio y TFS 2013
ALM con Visual Studio y TFS 2013
 
WORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API RESTWORKSHOP I: Introducción a API REST
WORKSHOP I: Introducción a API REST
 
Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2Zend/Cache de Zend Framework 2
Zend/Cache de Zend Framework 2
 

Similar a Documertar APIs - Meetup.js

Tutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAPTutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAPElwin Huaman
 
Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPElwin Huaman
 
Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"Alonso Caballero
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Javaalvaro alcocer sotil
 
Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Wilian
 
Lenguajes de Marcas en EntornosWeb
Lenguajes de Marcas en EntornosWebLenguajes de Marcas en EntornosWeb
Lenguajes de Marcas en EntornosWebilatorrep
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web modernoSebastián Rocco
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQLWilian
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxLuisTenorio42
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregidoJose Torres Gonzales
 

Similar a Documertar APIs - Meetup.js (20)

Tutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAPTutorial Web Services en PHP, REST, SOAP
Tutorial Web Services en PHP, REST, SOAP
 
Semana 7 Servicios Web API REST con Mongodb
Semana 7   Servicios Web API REST con MongodbSemana 7   Servicios Web API REST con Mongodb
Semana 7 Servicios Web API REST con Mongodb
 
Web Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAPWeb Service and PHP, REST and SOAP
Web Service and PHP, REST and SOAP
 
Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"Webinar Gratuito "OWASP WebScarab"
Webinar Gratuito "OWASP WebScarab"
 
Seminario IV: REST & Jersey
Seminario IV: REST & JerseySeminario IV: REST & Jersey
Seminario IV: REST & Jersey
 
Web services1
Web services1Web services1
Web services1
 
Curso: Programación Web con Tecnología Java
Curso:  	Programación Web con Tecnología JavaCurso:  	Programación Web con Tecnología Java
Curso: Programación Web con Tecnología Java
 
Lenguajes de marcas
Lenguajes de marcasLenguajes de marcas
Lenguajes de marcas
 
Presentacion
PresentacionPresentacion
Presentacion
 
Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1Curso TIC de PHP y MSQL Parte 1
Curso TIC de PHP y MSQL Parte 1
 
Lenguajes de Marcas en EntornosWeb
Lenguajes de Marcas en EntornosWebLenguajes de Marcas en EntornosWeb
Lenguajes de Marcas en EntornosWeb
 
Introducción a ASP.NET Web API
Introducción a ASP.NET Web APIIntroducción a ASP.NET Web API
Introducción a ASP.NET Web API
 
Introducción al desarrollo web moderno
Introducción al desarrollo web modernoIntroducción al desarrollo web moderno
Introducción al desarrollo web moderno
 
¿Cómo elegir servidor web?
¿Cómo elegir servidor web?¿Cómo elegir servidor web?
¿Cómo elegir servidor web?
 
Cómo elegir un servidor Web
Cómo elegir un servidor WebCómo elegir un servidor Web
Cómo elegir un servidor Web
 
software APACHE.
software APACHE.software APACHE.
software APACHE.
 
Curso TIC de PHP y MSQL
Curso TIC de PHP y MSQLCurso TIC de PHP y MSQL
Curso TIC de PHP y MSQL
 
Api rest ful
Api rest fulApi rest ful
Api rest ful
 
Integración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptxIntegración de Tecnologías y Plataformas.pptx
Integración de Tecnologías y Plataformas.pptx
 
Arquitectura de referencia corregido
Arquitectura de referencia corregidoArquitectura de referencia corregido
Arquitectura de referencia corregido
 

Último

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxaylincamaho
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesFundación YOD YOD
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024GiovanniJavierHidalg
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxJOSEMANUELHERNANDEZH11
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofJuancarlosHuertasNio1
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...AlanCedillo9
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxpabonheidy28
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricKeyla Dolores Méndez
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)GDGSucre
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfsoporteupcology
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersIván López Martín
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan JosephBRAYANJOSEPHPEREZGOM
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...JaquelineJuarez15
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...FacuMeza2
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx241521559
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafiosFundación YOD YOD
 

Último (20)

Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptxMedidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
Medidas de formas, coeficiente de asimetría y coeficiente de curtosis.pptx
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
KELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento ProtégelesKELA Presentacion Costa Rica 2024 - evento Protégeles
KELA Presentacion Costa Rica 2024 - evento Protégeles
 
Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024Cortes-24-de-abril-Tungurahua-3 año 2024
Cortes-24-de-abril-Tungurahua-3 año 2024
 
Hernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptxHernandez_Hernandez_Practica web de la sesion 12.pptx
Hernandez_Hernandez_Practica web de la sesion 12.pptx
 
ejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sofejercicios pseint para aprogramacion sof
ejercicios pseint para aprogramacion sof
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
Instrumentación Hoy_ INTERPRETAR EL DIAGRAMA UNIFILAR GENERAL DE UNA PLANTA I...
 
Plan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docxPlan de aula informatica segundo periodo.docx
Plan de aula informatica segundo periodo.docx
 
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft FabricGlobal Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)International Women's Day Sucre 2024 (IWD)
International Women's Day Sucre 2024 (IWD)
 
Redes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdfRedes direccionamiento y subredes ipv4 2024 .pdf
Redes direccionamiento y subredes ipv4 2024 .pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
guía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Josephguía de registro de slideshare por Brayan Joseph
guía de registro de slideshare por Brayan Joseph
 
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
El gusano informático Morris (1988) - Julio Ardita (1995) - Citizenfour (2014...
 
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
ATAJOS DE WINDOWS. Los diferentes atajos para utilizar en windows y ser más e...
 
Proyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptxProyecto integrador. Las TIC en la sociedad S4.pptx
Proyecto integrador. Las TIC en la sociedad S4.pptx
 
La era de la educación digital y sus desafios
La era de la educación digital y sus desafiosLa era de la educación digital y sus desafios
La era de la educación digital y sus desafios
 

Documertar APIs - Meetup.js

  • 1. Documentando APIs Ezequiel Gonzalez Rial gonrial@gmail.com @gonrial DevSpark
  • 2. Que es una API? Interfaz de Programación de Aplicaciones Describe funcionalidades independientemente de su implementación Ejemplos: – Aplicación ↔ Librería. – Ente 2 procesos en ejecución (dependen del SO) – Procesos que corren entre distintas máquinas
  • 3. Webservices • Servicios que se comunican usando usando internet • Primeros intentos de web services: SOAP 1998 • Deriva de un protocolo creado por Dave Winer en 1998, llamado XML-RPC. • SOAP fue creado por Microsoft, IBM y otros. Está actualmente bajo el auspicio de la W3C, mantenido por el XML Protocol Working Group.
  • 4. El crecimiento y caída de SOAP / WSDL / UDDI • XML hasta en la SOPA!!!! (cuac) • 1998: SOAP (Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos XML. • 2000: WSDL (Web Services Description Language), un formato XML que se utiliza para describir servicios Web. • 2000: UDDI (Universal Description, Discovery and Integration) permite registrar y buscar servicios en un catálogo: Páginas blancas, Páginas amarillas, Páginas verdes.
  • 5. REST al rescate • Representational State Transfer • Primera vez que se lo nombra Defensa de Tesis de Doctorado, Roy Fielding, 2000 • Ayudante de Tim Berners-Lee escribiendo la especificación de HTTP/1.1 • Recomendable para leer!
  • 6. Características de una API-REST • Basado en HTTP • Interfase Uniforme • Recursos • Manipulación de recursos a través de representaciones • Mensajes auto-descriptivos • HATEOAS: Hypermedia as the Engine of Application State • Sin-estado • Cacheable • Sistema de Capas
  • 7. Herramientas para documentar API-REST Swagger
  • 8. Swagger • Una especificación y un framework que permite describir, producir, consumir y visualizar servicios RESTful. • Centrado en la especificación. • Independiente del lenguaje. • Librerías para múltiples lenguajes y generadores de código – NodeJS usando Express. • Herramientas de terceros: Apigee-127
  • 9. RESTful API Modeling Language • Es una especificación y un framework. Permite describir de forma rápida y simple. Permite el descubrimiento de endpoints y el reuso de comportamientos, y pretende que emerjan las mejores practicas. • Desarrollado por Mulesoft • Hosteado (SaaS) • No tiene un soporte nativo de Nodejs.
  • 10. API Blueprint • Centrado en el ciclo de vida de una API. Permite que se discuta la API con otros. Genera documentación y conjuntos de pruebas de forma automática. • Hosteado (SaaS)
  • 11. Postman • Herramienta que permite inspeccionar APIs y guarda un historial de consultas. • Inicialmente extensión de Google Chrome. • Permite organizar las consultas realizadas y puede generar un documento resultado. • Definición de un workflow de trabajo.
  • 12. Recomendaciones para una buena API-REST • Usar los códigos de estado de HTTP (rfc2616) • Versionar la API – URL (/v1/...) o encabezados • Usar sustantivos, no verbos • Usar la forma plural • GET y HEAD no deben alterar el estado • Usar recursos anidados
  • 13. Recomendaciones para una buena API-REST • Paginar – Usar query strings – Las paginas son recursos – Usar encabezados HTTP (Github) • Links para HATEOAS – Custom vendor media type (no escala) – HAL – Xlink – Collections+JSON • Devolver siempre un mensaje de error consistente
  • 14. Preguntas? Ezequiel Gonzalez Rial gonrial@gmail.com @gonrial

Notas del editor

  1. Una Interfaz de Programación de Aplicaciones (del ingles application programming interface o API) es un conjunto de rutinas, protocolos y herramientas utilizadas en la construcción de aplicaciones. Una API define funcionalidades independientemente de su implementación, lo que permite que la definición y la implementación varíen sin verse comprometidos. La API especifica como los componentes de software interactúan. Distintos tipos de comunicación: Comunicación entre una aplicación y una librería. El ejemplo mas clásico es POSIX (Interfaz estándar del kernel de Linux) Comunicación ente 2 procesos independientes en la misma maquina, dependen de los mecanismos que implemente el sistema operativo. Los ejemplos mas conocidos: COM, OLE, DDE, Java RMI, DBUS, ZeroMQ, semáforos, pipes, sockets. Comunicación entre procesos corriendo en maquinas independientes: CORBA, XML-RPC, SOAP, WSDL y por ultimo REST