¿Qué es una API? - La mejor explicación en español
Summary
TLDREl vídeo explica qué son las APIs y su importancia en el desarrollo de aplicaciones. Se utilizan para integrar servicios y datos de otros sistemas, como Google Maps para geolocalización o PayPal para procesar pagos, evitando la reinvención de la rueda. Se discute la terminología clave, como 'interfaz', 'arquitectura de software' y 'servicio web', así como los tipos de APIs, como REST y SOAP. Se abordan los conceptos de autenticación, caché, y los formatos de datos JSON y XML. Además, se destacan las mejores prácticas en el desarrollo de APIs, como la autodescriptividad, seguridad y documentación.
Takeaways
- 😀 Las APIs (Application Programming Interfaces) son interfaces que permiten a diferentes programas o aplicaciones comunicarse y compartir datos entre sí.
- 🌍 Ejemplos de APIs incluyen el uso de Google Maps para geolocalización en aplicaciones de transporte y pasarelas de pago como PayPal para realizar transacciones en comercio electrónico.
- 🔗 Las APIs pueden ser integradas con otras aplicaciones, como Slack, para ampliar sus funcionalidades y convertirse en un centro de control más que simplemente un chat.
- 📚 La terminología clave en el mundo de las APIs incluye 'interfaz', 'arquitectura de software', 'servicio web' y 'REST' (Representational State Transfer), que es una arquitectura para APIs que facilita la caché de datos y la definición de permisos de acceso.
- 📈 XML y JSON son formatos utilizados para transferir información a través de APIs, siendo JSON el más popular hoy en día por su facilidad de uso y comprensión.
- 🔐 Las APIs pueden ser públicas, permitiendo acceso a cualquier persona, o privadas, que requieren autenticación y la generación de tokens para acceder a la información.
- 🌐 APIs pueden ser locales, ejecutándose en el mismo entorno, o remotas, consumiendo datos de aplicaciones en diferentes ubicaciones a través de servicios web.
- 🛠️ Al desarrollar APIs, es importante seguir buenas prácticas como la autodescriptividad de la API, la seguridad, el testeo y la documentación para facilitar su uso y consumo por otros desarrolladores.
- 📅 Se menciona un taller de tres horas sobre cómo desarrollar APIs con buenas prácticas, impartido por el director de tecnología de la empresa, que se llevará a cabo en la Ciudad de México el 18 de mayo.
Q & A
¿Qué es una API?
-Una API (Application Programming Interface) es una interfaz que permite que dos sistemas o aplicaciones se comuniquen y compartan datos entre ellos. Es una forma de aprovechar el desarrollo de otros sistemas para integrarlos en tu aplicación.
¿Por qué sería útil utilizar Google Maps en una aplicación de transporte?
-Sería útil porque Google Maps ya ha desarrollado un sistema completo de geolocalización y mapas con grandes inversiones en imágenes satelitales y tecnologías avanzadas. Aprovecharlo te ahorra tiempo y dinero en lugar de desarrollar mapas desde cero.
¿Qué beneficio tiene usar una pasarela de pago en un ecommerce?
-El beneficio es que no necesitas desarrollar toda la tecnología para procesar pagos desde cero, lo que puede ser muy complejo. En su lugar, puedes usar servicios como PayPal o Stripe, que ya tienen toda la infraestructura necesaria.
¿Cómo funciona la autenticación en una API privada?
-En una API privada, el servidor genera un token cuando te autenticas por primera vez. Este token contiene datos de autenticación y se usa para verificar tus solicitudes sin necesidad de volver a autenticarte en cada petición, siempre que el token siga siendo válido.
¿Qué es una URI en el contexto de APIs?
-Una URI (Uniform Resource Identifier) es un identificador único que permite acceder a un recurso específico en una API. Por ejemplo, una URI podría ser algo como 'api.com/estudiantes/alvaro', donde se accede a la información de un estudiante llamado Álvaro.
¿Qué significan los códigos de estado que devuelve una API?
-Los códigos de estado indican el resultado de una petición. Por ejemplo, 200 significa que la solicitud fue exitosa, 404 indica que el recurso no se encontró, y 500 señala un error en el servidor.
¿Cuáles son los métodos HTTP más comunes y para qué se usan?
-Los métodos más comunes son: GET (solicitar información), POST (enviar nueva información), PUT (actualizar información existente) y DELETE (eliminar información). Estos métodos permiten interactuar con los recursos de una API.
¿Cuál es el formato más utilizado hoy en día para transferir datos en una API y por qué?
-El formato más utilizado es JSON (JavaScript Object Notation), ya que es fácil de entender y manipular, lo que lo convierte en el estándar preferido para la transferencia de datos en APIs modernas.
¿Cuál es la diferencia entre una API local y una API remota?
-Una API local se ejecuta dentro del mismo entorno o dispositivo, como cuando una aplicación Android hace vibrar el teléfono. En cambio, una API remota se comunica con un servidor o servicio externo, como cuando una aplicación obtiene datos de una base de datos en otro servidor.
¿Qué buenas prácticas se deben seguir al desarrollar una API?
-Algunas buenas prácticas incluyen: asegurar las APIs privadas, asegurarse de que la API sea autodescriptiva (HATEOAS), realizar pruebas exhaustivas, y documentar adecuadamente la API para que sea fácil de consumir por otros desarrolladores.
Outlines
🐝 Introducción a las APIs
El primer párrafo explica qué son las APIs (Application Programming Interfaces) con ejemplos sencillos y cercanos. Se menciona cómo se pueden utilizar para desarrollar aplicaciones como un servicio de transporte similar a Uber, donde se hace uso de mapas y geolocalización, o para procesar pagos en comercios electrónicos, aprovechando las herramientas y desarrollos que ya han creado otras empresas como Google Maps o pasarelas de pago como PayPal. Además, se habla de la integración de APIs con aplicaciones existentes, como Slack, para ampliar sus funcionalidades. Se introduce la terminología básica relacionada con las APIs, como 'interfaz', 'software architecture', 'service web' y los diferentes tipos de APIs, como REST y SOAP, así como los formatos de datos XML y JSON. También se menciona la autenticación a través de tokens para el uso de APIs privadas.
🌐 APIs: Locales vs Remotas y Conceptos Clave
El segundo párrafo profundiza en la diferencia entre APIs locales y remotas, explicando que las locales operan en el mismo entorno del desarrollador, como un API de vibración en un teléfono Android, mientras que las remotas se consumen desde aplicaciones en diferentes ubicaciones geográficas. Se habla de los servicios web y cómo las APIs remotas pueden usar HTTP con protocolos como SOAP o REST. Se introducen conceptos como URI, endpoint, y los distintos códigos de respuesta HTTP que indican el resultado de una solicitud a una API. También se mencionan los métodos HTTP GET, POST, PUT y DELETE, y se enfatiza la importancia de los formatos de respuesta, la seguridad en las APIs privadas y las buenas prácticas al desarrollar APIs, como la autodescriptividad y la documentación.
🛠️ Mejores Prácticas para Desarrolladores de APIs
El tercer párrafo aborda las mejores prácticas que se deben seguir al desarrollar APIs, como la importancia de la documentación para facilitar la integración y el consumo de la API por otros desarrolladores. Se hace un llamado a participar en un workshop presencial en la ciudad de México, donde se impartirá un curso de tres horas sobre cómo crear APIs con buenas prácticas, impartido por el director de tecnología de la empresa. Se menciona también un evento llamado 'Edekan México 2019', que se llevará a cabo en mayo de 2019, enfocado en tecnología, networking y emprendimiento. Se anima a los interesados a adquirir entradas para el evento y el workshop para obtener una formación práctica y en profundidad sobre el tema.
Mindmap
Keywords
💡APIs
💡Geolocalización
💡Google Maps
💡
💡Pasarela de pago
💡Slack
💡REST
💡JSON
💡URI
💡HTTP
💡SOAP
💡Autenticación
Highlights
Las APIs permiten a las aplicaciones utilizar servicios y datos de otras aplicaciones, como Google Maps para geolocalización.
El uso de APIs evita la necesidad de desarrollar desde cero componentes complejos, ahorrando recursos.
Ejemplo de integración de APIs: conectar una aplicación de comercio electrónico con una pasarela de pagos como PayPal.
Slack es un ejemplo de una aplicación que se ha integrado con otras de manera sencilla, ampliando su funcionalidad.
Las APIs son interfaces de programación que permiten la comunicación y el intercambio de datos entre aplicaciones.
Las arquitecturas de software definen cómo se organizan y se comunican los componentes de un sistema.
Un servicio web es un sistema que permite la comunicación entre equipos a través de una red siguiendo estándares como HTTP.
REST es una arquitectura popular para APIs que permite la caché de datos y define el acceso a recursos a través de URIs.
XML y JSON son formatos utilizados para el intercambio de información, siendo JSON el más utilizado actualmente.
Las APIs pueden ser públicas, permitiendo el acceso a cualquier persona, o privadas, que requieren autenticación.
Los tokens JWT (JSON Web Tokens) son utilizados para la autenticación en APIs REST.
Las APIs remotas utilizan servicios web y pueden seguir el protocolo SOAP o REST para la comunicación entre programas.
URI (Uniform Resource Identifier) es el identificador único utilizado para consultar recursos en APIs.
Los códigos HTTP indican el resultado de una solicitud a una API, como éxito (200) o errores (400, 500).
Los métodos HTTP como GET, POST, PUT y DELETE permiten interactuar con las APIs para obtener o enviar información.
Las buenas prácticas en el desarrollo de APIs incluyen la autodescriptividad, seguridad y pruebas para garantizar su funcionamiento.
La documentación es crucial para el éxito de las APIs, facilitando su uso y consumo por otros desarrolladores.
Se anuncia un workshop para aprender a crear APIs y RED con buenas prácticas, impartido por un experto en la materia.
El workshop se llevará a cabo en la ciudad de México y es un evento presencial de tres horas.
Transcripts
hablemos hoy de apis que son las apis
bueno para explicártelo te voy a poner
un par de ejemplos imagínate que tú
quieres desarrollar una aplicación tipo
uber es decir de transporte y que haga
el seguimiento de dónde está el carro en
la ciudad
necesitas mapas necesitas
geolocalización ahora los mapas como los
harías necesitarías de una tonelada una
tonelada de billetes para poder
desarrollar los mapas desde cero así que
lo mejor es conectarte a google maps y
utilizar los mapas de ellos ellos han
gastado muchísimo dinero imágenes
satelitales de aviones de helicópteros
carros sin conductor gente con cámaras
en la cabeza es enorme lo que ellos han
hecho así que tú ya puedes aprovechar
todo ese desarrollo para tu aplicación
otro ejemplo vas a hacer un ecommerce y
necesitás cobrar por internet entonces
imagínate desarrollar toda la tecnología
para hacer cobros desde cero es tremendo
entonces mejor te conectas a una
pasarela de pago tipo paypal strike o lo
que haya en tu país y ya está entonces
aprovechas el desarrollo que han hecho
otras empresas para tu aplicación ese es
el concepto de apis
incluso es la que es la que es un chat
para empresas para organizaciones pero
uno de sus más grandes aciertos es la
gran integración que tiene con otras
aplicaciones slack lo puedes integrar
prácticamente con todo de una manera
bastante sencilla así que se convierte
en una especie de centro de control más
que un simple chat y eso lo hace muy
poderoso así que hacer que tu aplicación
pueda conectarse con otras le da
muchísimo más poder que una simple
aplicación aislada y ese es el concepto
de apis así que ahora sí vamos a
ponernos técnicos y ya no ejemplos vamos
a hablar de la terminología qué términos
se usan en este mundo de las apis en
primer lugar interfaz que es una
interfaz una capa de abstracción para
que dos sistemas se comuniquen como así
bueno
una capa de extracción permite que tú
interactúes con un sistema sin necesidad
de saber qué está pasando por debajo por
ejemplo ahí está la imagen del volante
de un auto de un timón
tú puedes girar el volante y el auto
gira en la dirección que tú quieres el
volante tú no necesitas saber la
mecánica que está por detrás es un
ejemplo de interacción con una capa de
abstracción o un formulario de login
tú pones tu usuario y contraseña haces
click en iniciar sesión e ingresas no
necesitas saber por debajo que estuvo
pasando esa es una interfaz ahora bien
una app y es una interfaz pero es
application programming interface es
decir una interfaz para que se
comuniquen aplicaciones programas de
software y compartan datos entre ellos
una arquitectura de software es la forma
en que está diseñado un sistema cómo
están organizados sus componentes cómo
se comunican entre ellos qué funciones
cumplen un servicio web por otro lado es
un sistema que permite la comunicación
entre equipos que estén en una red estos
sistemas tienen que seguir si estos
ciertos estándares usar el protocolo
http que es el mismo protocolo para
navegar por internet y es la base
obviamente de las apis remotas de la
comunicación entre programas pero que
estén en lugares diferentes
res es una arquitectura las apis pueden
ser de varios tipos uno de estos tipos
son las app y rest la arquitectura red
significa representational state
transfer significa una representación de
transferencia de estado esta
arquitectura implica que pueden
guardarse los datos en caché que el
estado no se envía en las peticiones y
que tú puedes definir qué datos permites
que otra aplicación acceda revise o
manipule de tu aplicación es decir si yo
quiero que mi aplicación pueda
consumirse desde otras apps
yo puedo definir los permisos eso es
resto
ahora bien xml es el formato para enviar
datos que se ha usado casi siempre es el
formato tradicional y es un formato como
ustedes pueden ver parecido a xml
significa extensible markup language las
etiquetas y todo eso ahora bien hoy en
día el formato más usado para transferir
información es el formato jason que
significa javascript o objects notation
es el más usado es prácticamente el
estándar de hoy en día porque es muy
fácil de entender y muy fácil también
manipular por otro lado las apis pueden
ser públicas o privadas públicas
obviamente cualquier persona puede
acceder a esas apps y consultar la
información mientras que una api privada
requiere una autenticación cuando tú te
auténticas la primera vez el servidor te
devuelve un token ese toque es un objeto
que contiene todos los datos de esta
autenticación entonces cada vez que tú
solicitas alguna información adicional
el servidor revisará si el token todavía
está vigente y ya no te pedirá una nueva
autenticación el formato más común para
los tokens en apis rest es j w ahora
bien ya entendimos el concepto de apis
son interfaces para que programas de
software se comuniquen entre ellos y
compartan datos bajo ciertos estándares
y el más usado hoy en día eres y el
formato más usado para enviar datos es
jason no es el único pero es el más
usado ahora bien las apis pueden ser
locales o remotas las locales son las
que se ejecutan dentro del mismo entorno
por ejemplo estás desarrollando una
aplicación android y tú necesitas que
en una notificación vibre haga vibrar el
teléfono entonces te comunicas con la
api de vibración del teléfono entonces
todo ocurre ahí todo es local sin
embargo también pueden haber apis
remotas significa que tú obviamente
consumes datos de una aplicación que
está en otro lugar en otro punto del
mundo esto es mucho más grande pero lo
hemos querido simplificar en este cuadro
es mucho más grande pero esto te va a
ayudar mucho a entender cómo está
organizado esto las apis como hemos
dicho pueden ser locales o pueden ser
remotas ahora las remotas pueden
utilizar servicios web te expliqué que
eran un sistema de comunicación en una
red utilizando el protocolo http
entonces las sad y remotas pueden
utilizar servicios web es lo más común y
si usan servicios web pueden usar el
protocolo soap o pueden ser rest
el protocolo swap todavía se sigue
usando aunque no tanto ya pero en su
momento fue el más usado ahora la red es
hoy en día la arquitectura no es un
protocolo la arquitectura más usada para
apis y cuando tú creas un servicio web
usando la arquitectura red
estamos hablando de redes
ya hemos visto lo importante que es
entender cómo funcionan las app y si
eres desarrollador en algún momento vas
a tener que crear tu propia app y
obviamente también consumir apis de
terceros sí entonces cuando tú estás
desarrollando una app y redes debes
comprender ciertos conceptos en primer
lugar cada recurso que tú consultas cada
información que tú consultas tiene un
identificador único llamado uri y tú la
consultas por algo llamado en point que
es la url completa ahora bien esa uri
permite consultar directamente un
recurso por ejemplo de punto team
diagonal estudiantes diagonal álvaro
esto es un ejemplo entonces es un
identificador único y de esa manera
puedes encontrar cualquier recurso que
tú estás necesitando o una lista de
ellos ahora cuando tú solicitas una
información a través de una app y el
servidor puede contestarte con distintos
códigos con esos códigos vas a saber qué
pasó con tu petición por ejemplo los
códigos 200 son los códigos de que todo
fue exitoso un código 200 indica
respuesta exitosa un código 202 que ha
sido creado un nuevo recurso
los códigos 300 indican re direcciones
por ejemplo 301 una redirección
permanente de 313 una redirección
temporal los códigos 400 indican que tú
has hecho una solicitud inválida tal vez
a un recurso que no existe que es el 404
otra vez a un recurso al que tú no
tienes autorización que es el 403 y los
códigos 500 indican errores ya
directamente en el servidor según el
código que te responde el servidor tú
sabrás qué hacer con esta petición ahora
bien también tenemos los métodos http
estos métodos nos permiten interactuar
con la app y por ejemplo el método get
es solicitar información
el método post es enviar nueva
información por ejemplo si yo me
registro n de tim voy a de punto team y
creó mi cuenta de usuario estoy usando
el método post para enviar la nueva
información de un usuario el método put
es actualizar información que ya exista
por ejemplo yo voy a ese punto team y
cambio mi contraseña entonces estoy
utilizando el método put y bilic
obviamente para borrar
esto es equivalente al club de las bases
de datos no es lo mismo pero es
equivalente y como hemos dicho las apis
te pueden devolver la información en
distintos formatos el formato más común
es el formato jason pero no el único
también puedes usar a pires y devolver
formato xml o incluso texto plano para
que te estarás preguntando bueno hay
empresas que tienen sus sistemas que
necesitan xml y te lo van a pedir así
incluso texto plano entidades del estado
también te piden a veces texto plano lo
importante es que no tienes que usar
otro sistema puedes seguir utilizando a
pires y devolver ese tipo de formato y
para terminar las buenas prácticas
cuando tú desarrollas una app y hay
buenas prácticas que tú debes seguir
aquí te dejo algunas de ellas en primer
lugar gestos gestos significa que la app
y se autodescribe cada recurso tiene
información de cuál es el recurso
siguiente o de la cantidad de recursos
totales que hay porque no es tan
sencillo como un array que el primer
elemento es el índice 1 o 0 el segundo
es el índice 1 el tercero es el índice 2
y así correlativamente pueden haberse
eliminado los registros en el proceso y
tal vez el primer elemento ser uno y el
siguiente sí
tendrías 49 errores hasta llegar al
siguiente recurso cierto para esos
trajecitos luego la seguridad como hemos
dicho tienes apis públicas y apis
privadas y tú a pies privada debes
proteger la obviamente si no podrían
entrar a tu información
obtener extraer la base de datos tal vez
de tus usuarios o base de datos privadas
o incluso manipular la esto es muy
riesgoso así que debes asegurarla por
otro lado debes testear tú sabes testear
que todo funcione correctamente porque
es terrible cuando tú haces una app y
alguien la va a consumir y la persona
que la consume pues no encuentra la
información de vida o no funciona como
debería el testeo está muy ligado a la
documentación recuerda que si tú haces
una app y la estás haciendo para que
alguien la consuma porque es un sistema
de comunicación es una interfaz de
comunicación no tiene sentido hacerla si
nadie la va a consumir entonces
documenta en el de ti me hemos intentado
integrar algunas plataformas externas no
voy a decir nombres porque no quiero que
me demanden
queremos que intentado y hay algunas tan
mal documentadas que es
realmente un infierno implementar ese
tipo de app es así que documenta to up y
espero que te haya quedado clara la
importancia de desarrollar apps y de
consumir apis para que las aplicaciones
se comuniquen y sean mucho más
enriquecidas y puedas aprovechar el
desarrollo de otras empresas en tus
proyectos y viceversa
si quieres aprender a crear una app y
redes con buenas prácticas es decir todo
lo que explicado acá pero con mucho más
detalle y entrando al código metiéndole
las manos al código y viendo cómo
funciona cada detalle te invito este 18
de mayo al workshop creando app y redes
con buenas prácticas que va a impartir
nuestro sitio nuestro director de
tecnología en el steam alexis los hará
en ciudad de méxico este workshop es
presencial en persona lo vas a tener ahí
para preguntarle todo y todo lo que te
venga a la mente para que cada dólar que
pagues por este workshop valga valga la
pena ok entonces es un workshop de tres
horas es un workshop intensivo donde vas
a aprender las buenas prácticas y los
procesos para desarrollar a pires que
repito es muy importante para cualquier
programador sea cual sea tu área no
vemos de méxico
este 17 y 18 de mayo se llevará a cabo
el edecán mexico 2019 dos días de mucha
tecnología networking y emprendimiento
con el equipo de ede team por primera
vez en ciudad de méxico entra ya mismo a
punto team diagonal mexico para adquirir
tus entradas
Voir Plus de Vidéos Connexes
¿Que es un WEB SERVICES?¿Para que SIRVE?:💻📝: EN 3 MINUTOS
Qué es una REST API y cómo funciona | La mejor explicación en español, para principiantes ✅
¿Qué es una BASE DE DATOS?// características GENERALES
Securing Swagger API Documentation with an API Key (JWT) | FREE COURSE
Todo sobre la nube | Cloud Computing
Arquitectura del software multicapa | | UPV
5.0 / 5 (0 votes)