SlideShare una empresa de Scribd logo
1 de 27
Descargar para leer sin conexión
Developers APIs
Débora Gómez y Esther Pato
Adalab
6 Septiembre 2019
Débora Gómez
Team & Technical Lead
myToys Group
devblog.mytoys.de
dgomez.developer@gmail.com
@dgomezdebora
www.linkedin.com/in/deboragomezbertoli
Esther Pato
Angular Frontend Developer
DNest agency
dnestagency.com
estherpato@gmail.com
@esther_epg
www.linkedin.com/in/estherpato
¿Qué vamos a ver?
➢ Introducción
➢ Conceptos básicos
➢ Programaremos
@dgomezdebora
@esther_epg
¿Qué significa API?
@dgomezdebora
@esther_epg
¿Qué significa API?
Application
Programming
Interface
An Interface used by Programs to interact with an Application
@dgomezdebora
@esther_epg
APIs exponen algo útil
Principalmente tienen dos misiones:
2. Y se usan para dar acceso a
los usuarios a tus datos o
recursos.
API Developers
1. Permiten que tu producto o tu
servicio se comunique con otro
producto o servicio.
@dgomezdebora
@esther_epg
Algunos ejemplos APIs públicas
@dgomezdebora
@esther_epg
APIs ¿por qué?
¿Por qué las empresas dan acceso a sus datos?
Pueden incrementar los beneficios de la empresa.
@dgomezdebora
@esther_epg
Let’s see the
APIs basics
@dgomezdebora
REST APIs - Definición
REST es cualquier interfaz entre sistemas que usen HTTP para obtener datos o
generar operaciones sobre esos datos en todos los formatos posibles, como
por ejemplo JSON.
➢ HTTP: es el protocolo usado en cada transacción Web.
➢ JSON: es un formato ligero de intercambio de datos.
Cada operación se compone de:
✔ Petición
✔ Respuesta
@dgomezdebora
@esther_epg
REST APIs - Petición
Cada petición contiene:
➢ Método
➢ URI
➢ Cabeceras
➢ Body
@dgomezdebora
@esther_epg
REST APIs - Petición (Method)
Las operaciones más importantes relacionadas con los datos en cualquier
sistema REST y la especificación HTTP son cuatro y es lo que se conoce como
CRUD (Create Read Update Delete)
Los recursos en REST siempre se manipulan a través de una URI.
➢ POST (crear)
➢ GET (leer y consultar)
➢ PUT (editar)
➢ DELETE (eliminar)
@dgomezdebora
@esther_epg
REST APIs - Petición (URI)
Estas son las partes que forman una URI:
http://www.googleapis.com/books/v1/volumes?q=isbn:0747532699
Protocolo
Host Path Query
@dgomezdebora
@esther_epg
REST APIs - Petición (Cabeceras)
Las Cabeceras HTTP son los parámetros que se envían en una petición o
respuesta HTTP al cliente o al servidor para proporcionar información esencial
sobre la transacción en curso.
http://www.googleapis.com/books/v1/volumes?q=isbn:0747532699
Estas cabeceras proporcionan información mediante la sintaxis 'Cabecera:
Valor' y son enviadas automáticamente por el navegador o el servidor Web.
● Content-Type: El tipo de contenido de la petición.
● Authorization: Credenciales de autorización.
@dgomezdebora
@esther_epg
REST APIs - Petición (Body)
La petición también puede contener un body:
{
“title”:”Adalabers sharing experiences”,
“author”:”Adalab”
}
http://www.googleapis.com/books/v1/volumes
Ejemplo:
GET https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699
@dgomezdebora
@esther_epg
REST APIs - Respuesta
Las respuestas contienen:
● Cabeceras.
● Código de respuesta.
● Body.
200 La petición ha sido procesada.
Nada ha cambiado.
401 Unauthorized
201 Creado 403 Forbidden
204 No content 404 Not found
400 Bad Request 500 Server error
Códigos de respuesta:
@dgomezdebora
@esther_epg
REST APIs - Respuesta
{
"kind": "books#volumes",
"totalItems": 1,
"items": [
{
"kind": "books#volume",
"id": "yZ1APgAACAAJ",
"etag": "FV4GQ8mw2PA",
"selfLink": "https://www.googleapis.com/books/v1/volumes/yZ1APgAACAAJ",
"volumeInfo": {
"title": "Harry Potter 1 and the Philosopher's Stone",
"authors": [
"J. K. Rowling"
],
"publisher": "Bloomsbury Pub Limited",
"publishedDate": "1997",
"description": "Harry Potter is an ordinary boy who lives in a cupboard under
the stairs at his Aunt Petunia and Uncle Vernon's house, which he thinks is normal
for someone like him who's parents have been killed in a 'car crash'. He is bullied
by them and his fat, spoilt cousin Dudley, and lives a very unremarkable life with
only the odd hiccup ...", @dgomezdebora
@esther_epg
REST APIs - Guidelines
Las peticiones GET se utilizan para leer un recurso o un conjunto de recursos.
1. Un recurso: normalmente genera un 404 si no existe.
2. Un conjunto: genera un 200 (si la lista es vacía) or 404 (si no existe).
3. No debe contener un body con datos (o bien usamos GET con
parámetros en la URL (recommended) or un POST con body).
@dgomezdebora
@esther_epg
REST APIs - Guidelines
Las peticiones POST se utilizan para crear recursos dentro de una colección.
1. Peticiones exitosas:
1. El servidor creará el recurso.
2. Generará un 200 (si ya existía y se ha actualizado), 201 (si el recurso se ha creado), and 202
(si la petición ha sido aceptada pero no ha terminado todavía)
2. Se pueden utilizar como un GET que necesita un body.
@dgomezdebora
@esther_epg
REST API - Guidelines
Las peticiones PUT para actualizar recursos enteros.
1. Se aplican a un solo recurso reemplazando toda su información. No se
aplica a una colección.
2. Es robusto frente a la no existencia del recurso implícitamente creándolo en
dicho caso.
3. Genera un 200 o 204 (si el recurso fue actualizado - con o sin retornar
la información actualizada), y 201 (si el recurso fue creado).
@dgomezdebora
@esther_epg
Guidelines - HTTP Methods
Las requests DELETE se usan para borrar recursos.
1. Se aplica a un solo recurso, no a colecciones ya que implicaría borrar la
colección entera.
2. Una request exitosa genera un 200 (si el recurso fue borrado y se retorna
información) o un 204 (si no se retorna información).
3. Una request fallida genera un 404 (si no se encuentra el recurso) or 410 (si el
recurso ya se había borrado anteriormente).
@dgomezdebora
@esther_epg
Let’s get dirty
@dgomezdebora
REST API - Ada Heroines
https://heroines-api.herokuapp.com/swagger-ui.html
Este API nos va a permitir:
● Obtener la lista de Ada Heroines.
● Crear nuevas Ada Heroines.
● Eliminar una Ada Heroin de nuestra lista.
● Actualizar los super poderes de una Ada Heroin.
@dgomezdebora
@esther_epg
Let’s actually
code
@dgomezdebora
REST API – Ada Heroines (javascript client)
Clonad el repositorio: https://github.com/estherpato/ada-heroines-front
Rama master está el ejemplo completo.
Ejercicio:
● Obtener lista de heroinas.
● Crear una heroina.
● Actualizar una heroina existente.
● Borrar una heroina.
@dgomezdebora
@esther_epg
Thanks!
dgomez.developer@gmail.com
@dgomezdebora
www.linkedin.com/in/deboragomezbertoli
estherpato@gmail.com
@esther_epg
www.linkedin.com/in/estherpato

Más contenido relacionado

Similar a Developers love APIs

Desarrollo de Aplicaciones para Twitter - CWZGZ
Desarrollo de Aplicaciones para Twitter - CWZGZDesarrollo de Aplicaciones para Twitter - CWZGZ
Desarrollo de Aplicaciones para Twitter - CWZGZequipo24
 
APIs REST #devfestBilbao
APIs REST #devfestBilbaoAPIs REST #devfestBilbao
APIs REST #devfestBilbaoAsier Marqués
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera apiCloudAppi
 
Desarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootDesarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootCloudAppi
 
Taller de introducción a Google App Engine
Taller de introducción a Google App EngineTaller de introducción a Google App Engine
Taller de introducción a Google App EngineManuel Martín
 
Taller definición de apis
Taller definición de apisTaller definición de apis
Taller definición de apisCloudAppi
 
Prepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuroPrepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuroMiguel Tabera
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con RESTAlex Puig
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxLuis775803
 
API WEB SQL ITParral
API WEB SQL ITParralAPI WEB SQL ITParral
API WEB SQL ITParralFerny Cortez
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Iniciativa Barcelona Open Data
 

Similar a Developers love APIs (20)

Desarrollo de Aplicaciones para Twitter - CWZGZ
Desarrollo de Aplicaciones para Twitter - CWZGZDesarrollo de Aplicaciones para Twitter - CWZGZ
Desarrollo de Aplicaciones para Twitter - CWZGZ
 
OpenAPI 3.0.2
OpenAPI 3.0.2OpenAPI 3.0.2
OpenAPI 3.0.2
 
APIs REST #devfestBilbao
APIs REST #devfestBilbaoAPIs REST #devfestBilbao
APIs REST #devfestBilbao
 
Google apps engine
Google apps engineGoogle apps engine
Google apps engine
 
RESTful APIs con Tastypie
RESTful APIs con TastypieRESTful APIs con Tastypie
RESTful APIs con Tastypie
 
Define y desarrolla tu primera api
Define y desarrolla tu primera apiDefine y desarrolla tu primera api
Define y desarrolla tu primera api
 
Desarrolla tu primera api con spring boot
Desarrolla tu primera api con spring bootDesarrolla tu primera api con spring boot
Desarrolla tu primera api con spring boot
 
introduccion a Ajax
introduccion a Ajaxintroduccion a Ajax
introduccion a Ajax
 
Taller de introducción a Google App Engine
Taller de introducción a Google App EngineTaller de introducción a Google App Engine
Taller de introducción a Google App Engine
 
API como SaaS
API como SaaSAPI como SaaS
API como SaaS
 
Semana 7 Servicios Web REST con MongoDB final
Semana 7   Servicios Web REST con MongoDB finalSemana 7   Servicios Web REST con MongoDB final
Semana 7 Servicios Web REST con MongoDB final
 
Taller definición de apis
Taller definición de apisTaller definición de apis
Taller definición de apis
 
Prepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuroPrepara tus apps de SharePoint y Office 365 para el futuro
Prepara tus apps de SharePoint y Office 365 para el futuro
 
Google Api
Google ApiGoogle Api
Google Api
 
Curso Cloud Computing, Parte 2: Google App Engine
Curso Cloud Computing, Parte 2: Google App EngineCurso Cloud Computing, Parte 2: Google App Engine
Curso Cloud Computing, Parte 2: Google App Engine
 
Desarrollando un API con REST
Desarrollando un API con RESTDesarrollando un API con REST
Desarrollando un API con REST
 
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptxEvolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
Evolution INTech - Acceso a bases de datos con Minimal APIs de .NET 6.pptx
 
Servicios web
Servicios webServicios web
Servicios web
 
API WEB SQL ITParral
API WEB SQL ITParralAPI WEB SQL ITParral
API WEB SQL ITParral
 
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)Curs 2.8. Utilización Automatizada de Datos Publicos (1)
Curs 2.8. Utilización Automatizada de Datos Publicos (1)
 

Último

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
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaarkananubis
 
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
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMidwarHenryLOZAFLORE
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 

Último (20)

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
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
R1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en minaR1600G CAT Variables de cargadores en mina
R1600G CAT Variables de cargadores en mina
 
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
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
Mapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptxMapa-conceptual-del-Origen-del-Universo-3.pptx
Mapa-conceptual-del-Origen-del-Universo-3.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 

Developers love APIs

  • 1. Developers APIs Débora Gómez y Esther Pato Adalab 6 Septiembre 2019
  • 2. Débora Gómez Team & Technical Lead myToys Group devblog.mytoys.de dgomez.developer@gmail.com @dgomezdebora www.linkedin.com/in/deboragomezbertoli
  • 3. Esther Pato Angular Frontend Developer DNest agency dnestagency.com estherpato@gmail.com @esther_epg www.linkedin.com/in/estherpato
  • 4. ¿Qué vamos a ver? ➢ Introducción ➢ Conceptos básicos ➢ Programaremos @dgomezdebora @esther_epg
  • 6. ¿Qué significa API? Application Programming Interface An Interface used by Programs to interact with an Application @dgomezdebora @esther_epg
  • 7. APIs exponen algo útil Principalmente tienen dos misiones: 2. Y se usan para dar acceso a los usuarios a tus datos o recursos. API Developers 1. Permiten que tu producto o tu servicio se comunique con otro producto o servicio. @dgomezdebora @esther_epg
  • 8. Algunos ejemplos APIs públicas @dgomezdebora @esther_epg
  • 9. APIs ¿por qué? ¿Por qué las empresas dan acceso a sus datos? Pueden incrementar los beneficios de la empresa. @dgomezdebora @esther_epg
  • 10. Let’s see the APIs basics @dgomezdebora
  • 11. REST APIs - Definición REST es cualquier interfaz entre sistemas que usen HTTP para obtener datos o generar operaciones sobre esos datos en todos los formatos posibles, como por ejemplo JSON. ➢ HTTP: es el protocolo usado en cada transacción Web. ➢ JSON: es un formato ligero de intercambio de datos. Cada operación se compone de: ✔ Petición ✔ Respuesta @dgomezdebora @esther_epg
  • 12. REST APIs - Petición Cada petición contiene: ➢ Método ➢ URI ➢ Cabeceras ➢ Body @dgomezdebora @esther_epg
  • 13. REST APIs - Petición (Method) Las operaciones más importantes relacionadas con los datos en cualquier sistema REST y la especificación HTTP son cuatro y es lo que se conoce como CRUD (Create Read Update Delete) Los recursos en REST siempre se manipulan a través de una URI. ➢ POST (crear) ➢ GET (leer y consultar) ➢ PUT (editar) ➢ DELETE (eliminar) @dgomezdebora @esther_epg
  • 14. REST APIs - Petición (URI) Estas son las partes que forman una URI: http://www.googleapis.com/books/v1/volumes?q=isbn:0747532699 Protocolo Host Path Query @dgomezdebora @esther_epg
  • 15. REST APIs - Petición (Cabeceras) Las Cabeceras HTTP son los parámetros que se envían en una petición o respuesta HTTP al cliente o al servidor para proporcionar información esencial sobre la transacción en curso. http://www.googleapis.com/books/v1/volumes?q=isbn:0747532699 Estas cabeceras proporcionan información mediante la sintaxis 'Cabecera: Valor' y son enviadas automáticamente por el navegador o el servidor Web. ● Content-Type: El tipo de contenido de la petición. ● Authorization: Credenciales de autorización. @dgomezdebora @esther_epg
  • 16. REST APIs - Petición (Body) La petición también puede contener un body: { “title”:”Adalabers sharing experiences”, “author”:”Adalab” } http://www.googleapis.com/books/v1/volumes Ejemplo: GET https://www.googleapis.com/books/v1/volumes?q=isbn:0747532699 @dgomezdebora @esther_epg
  • 17. REST APIs - Respuesta Las respuestas contienen: ● Cabeceras. ● Código de respuesta. ● Body. 200 La petición ha sido procesada. Nada ha cambiado. 401 Unauthorized 201 Creado 403 Forbidden 204 No content 404 Not found 400 Bad Request 500 Server error Códigos de respuesta: @dgomezdebora @esther_epg
  • 18. REST APIs - Respuesta { "kind": "books#volumes", "totalItems": 1, "items": [ { "kind": "books#volume", "id": "yZ1APgAACAAJ", "etag": "FV4GQ8mw2PA", "selfLink": "https://www.googleapis.com/books/v1/volumes/yZ1APgAACAAJ", "volumeInfo": { "title": "Harry Potter 1 and the Philosopher's Stone", "authors": [ "J. K. Rowling" ], "publisher": "Bloomsbury Pub Limited", "publishedDate": "1997", "description": "Harry Potter is an ordinary boy who lives in a cupboard under the stairs at his Aunt Petunia and Uncle Vernon's house, which he thinks is normal for someone like him who's parents have been killed in a 'car crash'. He is bullied by them and his fat, spoilt cousin Dudley, and lives a very unremarkable life with only the odd hiccup ...", @dgomezdebora @esther_epg
  • 19. REST APIs - Guidelines Las peticiones GET se utilizan para leer un recurso o un conjunto de recursos. 1. Un recurso: normalmente genera un 404 si no existe. 2. Un conjunto: genera un 200 (si la lista es vacía) or 404 (si no existe). 3. No debe contener un body con datos (o bien usamos GET con parámetros en la URL (recommended) or un POST con body). @dgomezdebora @esther_epg
  • 20. REST APIs - Guidelines Las peticiones POST se utilizan para crear recursos dentro de una colección. 1. Peticiones exitosas: 1. El servidor creará el recurso. 2. Generará un 200 (si ya existía y se ha actualizado), 201 (si el recurso se ha creado), and 202 (si la petición ha sido aceptada pero no ha terminado todavía) 2. Se pueden utilizar como un GET que necesita un body. @dgomezdebora @esther_epg
  • 21. REST API - Guidelines Las peticiones PUT para actualizar recursos enteros. 1. Se aplican a un solo recurso reemplazando toda su información. No se aplica a una colección. 2. Es robusto frente a la no existencia del recurso implícitamente creándolo en dicho caso. 3. Genera un 200 o 204 (si el recurso fue actualizado - con o sin retornar la información actualizada), y 201 (si el recurso fue creado). @dgomezdebora @esther_epg
  • 22. Guidelines - HTTP Methods Las requests DELETE se usan para borrar recursos. 1. Se aplica a un solo recurso, no a colecciones ya que implicaría borrar la colección entera. 2. Una request exitosa genera un 200 (si el recurso fue borrado y se retorna información) o un 204 (si no se retorna información). 3. Una request fallida genera un 404 (si no se encuentra el recurso) or 410 (si el recurso ya se había borrado anteriormente). @dgomezdebora @esther_epg
  • 24. REST API - Ada Heroines https://heroines-api.herokuapp.com/swagger-ui.html Este API nos va a permitir: ● Obtener la lista de Ada Heroines. ● Crear nuevas Ada Heroines. ● Eliminar una Ada Heroin de nuestra lista. ● Actualizar los super poderes de una Ada Heroin. @dgomezdebora @esther_epg
  • 26. REST API – Ada Heroines (javascript client) Clonad el repositorio: https://github.com/estherpato/ada-heroines-front Rama master está el ejemplo completo. Ejercicio: ● Obtener lista de heroinas. ● Crear una heroina. ● Actualizar una heroina existente. ● Borrar una heroina. @dgomezdebora @esther_epg