SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
@ideup #theapihour
API como SaaS
información como valor añadido
@ideup #theapihour
@ideup #theapihour
ideup.
Experiencias digitales de máxima rentabilidad
www.ideup.com | ideupBlog | @ideup | Linkedin | Facebook | +34 91 636 63 24
Arquitecto web en ideup
E-mail: pablo.lopez@ideup.com
Twitter: @plopesc
@ideup #theapihour
SaaS es un modelo de distribución de software donde el
soporte lógico y los datos que maneja se alojan en servidores
de una compañía, a los que se accede con un navegador web
desde un cliente, a través de Internet.
Una API (Interfaz de programación de aplicaciones) es el
conjunto de funciones y procedimientos (o métodos, en
la programación orientada a objetos) que ofrece
cierta biblioteca para ser utilizado por otro software como una
capa de abstracción.
¿SaaS? ¿API? ¿API como SaaS?
@ideup #theapihour
¿SaaS? ¿API? ¿API como SaaS?
@ideup #theapihour
Interoperabilidad máquina-máquina
Generalmente, clientes y servidores que, siguiendo el
estándar SOAP, intercambian mensajes en XML.
En los últimos años, se ha hecho muy popular un estilo
arquitectónico conocido como REST.
¿Servicio Web?
@ideup #theapihour
¿Servicio Web?
RPC (Llamadas a procedimientos remotos)
SOA (Arquitectura Orientada a Servicios)
REST (Representation State Transfer)
@ideup #theapihour
¿Servicio Web?
RPC (Llamadas a procedimientos remotos)
SOA (Arquitectura Orientada a Servicios)
REST (Representation State Transfer)
l
Ligero
l
Sencillo
l
Interoperable
l
Escalable
@ideup #theapihour
¿Por qué REST?
@ideup #theapihour
API en la Actualidad
@ideup #theapihour
API en la Actualidad
@ideup #theapihour
API en la Actualidad
@ideup #theapihour
API en la Actualidad
@ideup #theapihour
API REST en
En deupelegimos el estilo de arquitectura que nos ofrece
REST por diversas razones:
• Nos sentimos muy cómodos con el protocolo HTTP
• La experiencia digital que tenemos nos dice que es el estilo
más adecuado para muchos de nuestros clientes
• Tenemos experiencia consolidada con Drupal y Symfony y se
adaptan muy bien a REST
• La arquitectura se simplifica al máximo, por lo que
obtenemos más rendimiento
• Las peticiones también se simplifican, es decir, ganamos
velocidad de procesamiento
• Los resultados son visualmente interpretables
• Fácilmente escalable
• Curva de aprendizaje prácticamente inexistente
@ideup #theapihour
API REST
REST está orientado a recursos:
• REST no es RPC, por lo tanto no publicamos verbos como
alquilar, sino publicamos nombres como película o socio.
• Cada recurso posee un identificador único universal
• La implementación de un recurso es privada y no accesible
desde el exterior
• Cada recurso tiene una interfaz o conjunto de operaciones
que admite
• La interfaz es homogénea para todos los recursos
• Las operaciones son stateless
@ideup #theapihour
API REST
Los servicios REST son multimedia, es decir, podemos usar
las cabeceras Accept y Content-Type para negociar qué tipo
MIME vamos a usar en la comunicación
Una única URI para poder acceder al mismo recurso en
diferentes formatos
http://midominio.es/rest/pelicula/43
abb4bb4
@ideup #theapihour
API REST
A la hora de modelar APIs, REST nos da la facilidad de hacerlo
de diferentes modos, dependiendo del fin que tengamos.
La forma más fácil de diseñar una API REST es siguiendo un
estilo orientado a datos (u operaciones CRUD). Cada URI
representa una tabla o entidad y mediante los verbos HTTP
definimos las operaciones de edición y lectura.
HTTP CRUD Descripción
POST CREATE Crear un nuevo recurso
GET RETRIEVE Obtener la representación de un
recurso
PUT UPDATE Actualizar un recurso
DELETE DELETE Eliminar un recurso
@ideup #theapihour
API REST
No es necesario acoplar API al modelo de persistencia de
datos.
En muchos casos diseñar el API con este tipo de orientación
sería más que suficiente, pero en muchos otros no lo es.
El API debe cumplir su principal objetivo: Ser útil para el
usuario
En este punto es cuando le podemos ver la utilidad al
concepto de hypermedia
@ideup #theapihour
API REST - HYPERMEDIA
Usuario no debe conocer el API completa
Cliente capaz de autodescubrir todas las
posibilidades de la aplicación de forma
autónoma
@ideup #theapihour
API REST: apuntes
l
Concurrencia
l
Etag y persistencia
l
Seguridad
@ideup #theapihour
API REST: apuntes
Desde la implementación, para asegurarnos que estamos
creando un aplicativo escalable, tenemos que intentar evitar
el máximo de operaciones posibles.
Para ello, podemos usar o implementar un sistema de caché
en la aplicación de tal modo que sólo creemos el resultado
cuando el almacenado en la caché haya cambiado.
Podemos usar varios métodos entre los que destacamos los
dos siguientes:
• If-None-Match y Etag: Se realiza un GET condicional de tal
modo que sólo devolveremos con la nueva información si
ésta ha cambiado. El código de respuesta 304 indica que el
recurso solicitado no ha cambiado.
• If-Modified-Since y Last-Modified: En este caso, se
comprueba la fecha de modificación del recurso y, si ha
pasado, se devuelve la información del servidor. Los relojes
del servidor y cliente deberían estar sincronizados.
@ideup #theapihour
Infraestructuras de Sistemas
En ideu los proyectos que realizamos (en su mayoría) están
implementados bajos infraestructuras LAMP, con algunas
mejoras en ciertos casos para lograr una mayor escalabilidad.
@ideup #theapihour
Caso de éxito: Agregador de cupones
@ideup #theapihour
Notas Finales
• Busca siempre la simplicidad en la implementación. Es lo
que hará que el desarrollo del proyecto no se desborde.
• Nuestra API no sólo debe ser simple y fácil de usar, sino que
además debe parecerlo: una buena documentación, sencilla
pero completa, para que el programador tercero pueda
usarla con éxito.
• Escucha a tus nuevos clientes, los programadores: el
feedback es importantísimo para la madurez de la API.
• Antes de acometer la fase de diseño e implementación,
hacer un estudio de lo que realmente es útil y lo que va a
necesitar nuestro cliente.
• Usamos API REST para aprovechar la escalabilidad del
protocolo HTTP: Respeta su semántica.
@ideup #theapihour
API como SaaS
información como valor añadido
@ideup #theapihour

Más contenido relacionado

Similar a API como SaaS

MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019 MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019 Larry Magallanes
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayPlain Concepts
 
Comparación de API y SOA
Comparación de API y SOAComparación de API y SOA
Comparación de API y SOADiego Suarez
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"www.encamina.com
 
Net conf ar v2018 start up
Net conf ar v2018 start upNet conf ar v2018 start up
Net conf ar v2018 start upfernando sonego
 
Monetización de APIs con WSO2
Monetización de APIs con WSO2Monetización de APIs con WSO2
Monetización de APIs con WSO2WSO2
 
Mulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integracionesMulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integracionesLarry Magallanes
 
Desarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos DeportivosDesarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos DeportivosAdrian Alonso Vega
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryGonzalo Chacaltana
 
Apis Agregadas computomasivo
Apis Agregadas computomasivoApis Agregadas computomasivo
Apis Agregadas computomasivoAndrea Guevara
 
Api managers
Api managersApi managers
Api managersCloudAppi
 

Similar a API como SaaS (20)

SimpleSAMLphp
SimpleSAMLphpSimpleSAMLphp
SimpleSAMLphp
 
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
 
MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019 MuleSoft Anypoint Platform - Releases 2019
MuleSoft Anypoint Platform - Releases 2019
 
API Agregadas
API AgregadasAPI Agregadas
API Agregadas
 
Derribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev DayDerribando la torre de marfil - Plain Concepts Dev Day
Derribando la torre de marfil - Plain Concepts Dev Day
 
JS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World ExampleJS Patterns Applied to a Real World Example
JS Patterns Applied to a Real World Example
 
Api rest ful
Api rest fulApi rest ful
Api rest ful
 
Comparación de API y SOA
Comparación de API y SOAComparación de API y SOA
Comparación de API y SOA
 
"Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore""Los Imprescindibles de .NetCore"
"Los Imprescindibles de .NetCore"
 
S7-DAW-2022S1.pptx
S7-DAW-2022S1.pptxS7-DAW-2022S1.pptx
S7-DAW-2022S1.pptx
 
Net conf ar v2018 start up
Net conf ar v2018 start upNet conf ar v2018 start up
Net conf ar v2018 start up
 
Monetización de APIs con WSO2
Monetización de APIs con WSO2Monetización de APIs con WSO2
Monetización de APIs con WSO2
 
Mulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integracionesMulesoft: Plataforma empesarial de integraciones
Mulesoft: Plataforma empesarial de integraciones
 
Charla REST API
Charla REST APICharla REST API
Charla REST API
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
 
Desarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos DeportivosDesarrollo de una aplicación Web para organizar Eventos Deportivos
Desarrollo de una aplicación Web para organizar Eventos Deportivos
 
Optimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-MemoryOptimización de aplicaciones web con base de datos NoSQL In-Memory
Optimización de aplicaciones web con base de datos NoSQL In-Memory
 
RAML
RAMLRAML
RAML
 
Apis Agregadas computomasivo
Apis Agregadas computomasivoApis Agregadas computomasivo
Apis Agregadas computomasivo
 
Api managers
Api managersApi managers
Api managers
 

Más de Pablo López Escobés

MADs about Drupal: Programación de entities para D7
MADs about Drupal: Programación de entities para D7MADs about Drupal: Programación de entities para D7
MADs about Drupal: Programación de entities para D7Pablo López Escobés
 
Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...
Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...
Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...Pablo López Escobés
 
Definición e implementación de soluciones basadas en APIs universales para la...
Definición e implementación de soluciones basadas en APIs universales para la...Definición e implementación de soluciones basadas en APIs universales para la...
Definición e implementación de soluciones basadas en APIs universales para la...Pablo López Escobés
 
Geohabilitación de gestores contenidos: CMSMap
Geohabilitación de gestores contenidos: CMSMapGeohabilitación de gestores contenidos: CMSMap
Geohabilitación de gestores contenidos: CMSMapPablo López Escobés
 
IDELab MapstractionInteractive: API Universal y Políglota
IDELab MapstractionInteractive: API Universal y PolíglotaIDELab MapstractionInteractive: API Universal y Políglota
IDELab MapstractionInteractive: API Universal y PolíglotaPablo López Escobés
 
Drupal & GIS: Convirtiendo Drupal en un GeoCMS
Drupal & GIS: Convirtiendo Drupal en un GeoCMSDrupal & GIS: Convirtiendo Drupal en un GeoCMS
Drupal & GIS: Convirtiendo Drupal en un GeoCMSPablo López Escobés
 

Más de Pablo López Escobés (11)

When Drupal met CARTO
When Drupal met CARTOWhen Drupal met CARTO
When Drupal met CARTO
 
D7 as D8
D7 as D8D7 as D8
D7 as D8
 
Drupal 8: Fields reborn
Drupal 8: Fields rebornDrupal 8: Fields reborn
Drupal 8: Fields reborn
 
Get on with Field API
Get on with Field APIGet on with Field API
Get on with Field API
 
MADs about Drupal: Programación de entities para D7
MADs about Drupal: Programación de entities para D7MADs about Drupal: Programación de entities para D7
MADs about Drupal: Programación de entities para D7
 
Poniendo a drupal en el mapa
Poniendo a drupal en el mapaPoniendo a drupal en el mapa
Poniendo a drupal en el mapa
 
Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...
Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...
Integración de APIs políglotas de mapas en Google Web Toolkit: IDELabMapstrac...
 
Definición e implementación de soluciones basadas en APIs universales para la...
Definición e implementación de soluciones basadas en APIs universales para la...Definición e implementación de soluciones basadas en APIs universales para la...
Definición e implementación de soluciones basadas en APIs universales para la...
 
Geohabilitación de gestores contenidos: CMSMap
Geohabilitación de gestores contenidos: CMSMapGeohabilitación de gestores contenidos: CMSMap
Geohabilitación de gestores contenidos: CMSMap
 
IDELab MapstractionInteractive: API Universal y Políglota
IDELab MapstractionInteractive: API Universal y PolíglotaIDELab MapstractionInteractive: API Universal y Políglota
IDELab MapstractionInteractive: API Universal y Políglota
 
Drupal & GIS: Convirtiendo Drupal en un GeoCMS
Drupal & GIS: Convirtiendo Drupal en un GeoCMSDrupal & GIS: Convirtiendo Drupal en un GeoCMS
Drupal & GIS: Convirtiendo Drupal en un GeoCMS
 

Último

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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdfIsabellaMontaomurill
 
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
 
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
 
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
 
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
 
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
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveFagnerLisboa3
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíassuserf18419
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIAWilbisVega
 
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
 
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
 
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
 
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
 
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
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...silviayucra2
 

Último (19)

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
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
trabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdftrabajotecologiaisabella-240424003133-8f126965.pdf
trabajotecologiaisabella-240424003133-8f126965.pdf
 
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
 
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
 
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
 
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
 
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...
 
EPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial UninoveEPA-pdf resultado da prova presencial Uninove
EPA-pdf resultado da prova presencial Uninove
 
Trabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnologíaTrabajo Mas Completo De Excel en clase tecnología
Trabajo Mas Completo De Excel en clase tecnología
 
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
 
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
 
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE  DE TECNOLOGIA E INFORMATICA PRIMARIACLASE  DE TECNOLOGIA E INFORMATICA PRIMARIA
CLASE DE TECNOLOGIA E INFORMATICA PRIMARIA
 
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
 
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
 
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...
 
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 TestcontainersSalmorejoTech 2024 - Spring Boot <3 Testcontainers
SalmorejoTech 2024 - Spring Boot <3 Testcontainers
 
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)
 
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
POWER POINT YUCRAElabore una PRESENTACIÓN CORTA sobre el video película: La C...
 

API como SaaS

  • 1. @ideup #theapihour API como SaaS información como valor añadido @ideup #theapihour
  • 2. @ideup #theapihour ideup. Experiencias digitales de máxima rentabilidad www.ideup.com | ideupBlog | @ideup | Linkedin | Facebook | +34 91 636 63 24 Arquitecto web en ideup E-mail: pablo.lopez@ideup.com Twitter: @plopesc
  • 3. @ideup #theapihour SaaS es un modelo de distribución de software donde el soporte lógico y los datos que maneja se alojan en servidores de una compañía, a los que se accede con un navegador web desde un cliente, a través de Internet. Una API (Interfaz de programación de aplicaciones) es el conjunto de funciones y procedimientos (o métodos, en la programación orientada a objetos) que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. ¿SaaS? ¿API? ¿API como SaaS?
  • 5. @ideup #theapihour Interoperabilidad máquina-máquina Generalmente, clientes y servidores que, siguiendo el estándar SOAP, intercambian mensajes en XML. En los últimos años, se ha hecho muy popular un estilo arquitectónico conocido como REST. ¿Servicio Web?
  • 6. @ideup #theapihour ¿Servicio Web? RPC (Llamadas a procedimientos remotos) SOA (Arquitectura Orientada a Servicios) REST (Representation State Transfer)
  • 7. @ideup #theapihour ¿Servicio Web? RPC (Llamadas a procedimientos remotos) SOA (Arquitectura Orientada a Servicios) REST (Representation State Transfer) l Ligero l Sencillo l Interoperable l Escalable
  • 10. @ideup #theapihour API en la Actualidad
  • 11. @ideup #theapihour API en la Actualidad
  • 12. @ideup #theapihour API en la Actualidad
  • 13. @ideup #theapihour API REST en En deupelegimos el estilo de arquitectura que nos ofrece REST por diversas razones: • Nos sentimos muy cómodos con el protocolo HTTP • La experiencia digital que tenemos nos dice que es el estilo más adecuado para muchos de nuestros clientes • Tenemos experiencia consolidada con Drupal y Symfony y se adaptan muy bien a REST • La arquitectura se simplifica al máximo, por lo que obtenemos más rendimiento • Las peticiones también se simplifican, es decir, ganamos velocidad de procesamiento • Los resultados son visualmente interpretables • Fácilmente escalable • Curva de aprendizaje prácticamente inexistente
  • 14. @ideup #theapihour API REST REST está orientado a recursos: • REST no es RPC, por lo tanto no publicamos verbos como alquilar, sino publicamos nombres como película o socio. • Cada recurso posee un identificador único universal • La implementación de un recurso es privada y no accesible desde el exterior • Cada recurso tiene una interfaz o conjunto de operaciones que admite • La interfaz es homogénea para todos los recursos • Las operaciones son stateless
  • 15. @ideup #theapihour API REST Los servicios REST son multimedia, es decir, podemos usar las cabeceras Accept y Content-Type para negociar qué tipo MIME vamos a usar en la comunicación Una única URI para poder acceder al mismo recurso en diferentes formatos http://midominio.es/rest/pelicula/43 abb4bb4
  • 16. @ideup #theapihour API REST A la hora de modelar APIs, REST nos da la facilidad de hacerlo de diferentes modos, dependiendo del fin que tengamos. La forma más fácil de diseñar una API REST es siguiendo un estilo orientado a datos (u operaciones CRUD). Cada URI representa una tabla o entidad y mediante los verbos HTTP definimos las operaciones de edición y lectura. HTTP CRUD Descripción POST CREATE Crear un nuevo recurso GET RETRIEVE Obtener la representación de un recurso PUT UPDATE Actualizar un recurso DELETE DELETE Eliminar un recurso
  • 17. @ideup #theapihour API REST No es necesario acoplar API al modelo de persistencia de datos. En muchos casos diseñar el API con este tipo de orientación sería más que suficiente, pero en muchos otros no lo es. El API debe cumplir su principal objetivo: Ser útil para el usuario En este punto es cuando le podemos ver la utilidad al concepto de hypermedia
  • 18. @ideup #theapihour API REST - HYPERMEDIA Usuario no debe conocer el API completa Cliente capaz de autodescubrir todas las posibilidades de la aplicación de forma autónoma
  • 19. @ideup #theapihour API REST: apuntes l Concurrencia l Etag y persistencia l Seguridad
  • 20. @ideup #theapihour API REST: apuntes Desde la implementación, para asegurarnos que estamos creando un aplicativo escalable, tenemos que intentar evitar el máximo de operaciones posibles. Para ello, podemos usar o implementar un sistema de caché en la aplicación de tal modo que sólo creemos el resultado cuando el almacenado en la caché haya cambiado. Podemos usar varios métodos entre los que destacamos los dos siguientes: • If-None-Match y Etag: Se realiza un GET condicional de tal modo que sólo devolveremos con la nueva información si ésta ha cambiado. El código de respuesta 304 indica que el recurso solicitado no ha cambiado. • If-Modified-Since y Last-Modified: En este caso, se comprueba la fecha de modificación del recurso y, si ha pasado, se devuelve la información del servidor. Los relojes del servidor y cliente deberían estar sincronizados.
  • 21. @ideup #theapihour Infraestructuras de Sistemas En ideu los proyectos que realizamos (en su mayoría) están implementados bajos infraestructuras LAMP, con algunas mejoras en ciertos casos para lograr una mayor escalabilidad.
  • 22. @ideup #theapihour Caso de éxito: Agregador de cupones
  • 23. @ideup #theapihour Notas Finales • Busca siempre la simplicidad en la implementación. Es lo que hará que el desarrollo del proyecto no se desborde. • Nuestra API no sólo debe ser simple y fácil de usar, sino que además debe parecerlo: una buena documentación, sencilla pero completa, para que el programador tercero pueda usarla con éxito. • Escucha a tus nuevos clientes, los programadores: el feedback es importantísimo para la madurez de la API. • Antes de acometer la fase de diseño e implementación, hacer un estudio de lo que realmente es útil y lo que va a necesitar nuestro cliente. • Usamos API REST para aprovechar la escalabilidad del protocolo HTTP: Respeta su semántica.
  • 24. @ideup #theapihour API como SaaS información como valor añadido @ideup #theapihour