00:00:04
hablemos hoy de apis que son las apis
00:00:06
bueno para explicártelo te voy a poner
00:00:08
un par de ejemplos imagínate que tú
00:00:10
quieres desarrollar una aplicación tipo
00:00:11
uber es decir de transporte y que haga
00:00:14
el seguimiento de dónde está el carro en
00:00:15
la ciudad
00:00:16
necesitas mapas necesitas
00:00:18
geolocalización ahora los mapas como los
00:00:21
harías necesitarías de una tonelada una
00:00:24
tonelada de billetes para poder
00:00:26
desarrollar los mapas desde cero así que
00:00:28
lo mejor es conectarte a google maps y
00:00:31
utilizar los mapas de ellos ellos han
00:00:33
gastado muchísimo dinero imágenes
00:00:35
satelitales de aviones de helicópteros
00:00:37
carros sin conductor gente con cámaras
00:00:39
en la cabeza es enorme lo que ellos han
00:00:42
hecho así que tú ya puedes aprovechar
00:00:43
todo ese desarrollo para tu aplicación
00:00:45
otro ejemplo vas a hacer un ecommerce y
00:00:48
necesitás cobrar por internet entonces
00:00:50
imagínate desarrollar toda la tecnología
00:00:52
para hacer cobros desde cero es tremendo
00:00:55
entonces mejor te conectas a una
00:00:58
pasarela de pago tipo paypal strike o lo
00:01:01
que haya en tu país y ya está entonces
00:01:03
aprovechas el desarrollo que han hecho
00:01:05
otras empresas para tu aplicación ese es
00:01:09
el concepto de apis
00:01:10
incluso es la que es la que es un chat
00:01:12
para empresas para organizaciones pero
00:01:14
uno de sus más grandes aciertos es la
00:01:16
gran integración que tiene con otras
00:01:17
aplicaciones slack lo puedes integrar
00:01:19
prácticamente con todo de una manera
00:01:21
bastante sencilla así que se convierte
00:01:23
en una especie de centro de control más
00:01:26
que un simple chat y eso lo hace muy
00:01:28
poderoso así que hacer que tu aplicación
00:01:31
pueda conectarse con otras le da
00:01:33
muchísimo más poder que una simple
00:01:36
aplicación aislada y ese es el concepto
00:01:39
de apis así que ahora sí vamos a
00:01:41
ponernos técnicos y ya no ejemplos vamos
00:01:44
a hablar de la terminología qué términos
00:01:45
se usan en este mundo de las apis en
00:01:47
primer lugar interfaz que es una
00:01:50
interfaz una capa de abstracción para
00:01:51
que dos sistemas se comuniquen como así
00:01:54
bueno
00:01:55
una capa de extracción permite que tú
00:01:56
interactúes con un sistema sin necesidad
00:01:59
de saber qué está pasando por debajo por
00:02:01
ejemplo ahí está la imagen del volante
00:02:03
de un auto de un timón
00:02:05
tú puedes girar el volante y el auto
00:02:07
gira en la dirección que tú quieres el
00:02:09
volante tú no necesitas saber la
00:02:10
mecánica que está por detrás es un
00:02:12
ejemplo de interacción con una capa de
00:02:14
abstracción o un formulario de login
00:02:16
tú pones tu usuario y contraseña haces
00:02:18
click en iniciar sesión e ingresas no
00:02:21
necesitas saber por debajo que estuvo
00:02:22
pasando esa es una interfaz ahora bien
00:02:26
una app y es una interfaz pero es
00:02:28
application programming interface es
00:02:30
decir una interfaz para que se
00:02:33
comuniquen aplicaciones programas de
00:02:35
software y compartan datos entre ellos
00:02:38
una arquitectura de software es la forma
00:02:41
en que está diseñado un sistema cómo
00:02:43
están organizados sus componentes cómo
00:02:45
se comunican entre ellos qué funciones
00:02:47
cumplen un servicio web por otro lado es
00:02:51
un sistema que permite la comunicación
00:02:52
entre equipos que estén en una red estos
00:02:55
sistemas tienen que seguir si estos
00:02:57
ciertos estándares usar el protocolo
00:02:59
http que es el mismo protocolo para
00:03:01
navegar por internet y es la base
00:03:03
obviamente de las apis remotas de la
00:03:05
comunicación entre programas pero que
00:03:07
estén en lugares diferentes
00:03:10
res es una arquitectura las apis pueden
00:03:13
ser de varios tipos uno de estos tipos
00:03:15
son las app y rest la arquitectura red
00:03:18
significa representational state
00:03:20
transfer significa una representación de
00:03:22
transferencia de estado esta
00:03:25
arquitectura implica que pueden
00:03:27
guardarse los datos en caché que el
00:03:29
estado no se envía en las peticiones y
00:03:32
que tú puedes definir qué datos permites
00:03:35
que otra aplicación acceda revise o
00:03:38
manipule de tu aplicación es decir si yo
00:03:40
quiero que mi aplicación pueda
00:03:42
consumirse desde otras apps
00:03:44
yo puedo definir los permisos eso es
00:03:46
resto
00:03:48
ahora bien xml es el formato para enviar
00:03:50
datos que se ha usado casi siempre es el
00:03:53
formato tradicional y es un formato como
00:03:55
ustedes pueden ver parecido a xml
00:03:57
significa extensible markup language las
00:04:01
etiquetas y todo eso ahora bien hoy en
00:04:03
día el formato más usado para transferir
00:04:05
información es el formato jason que
00:04:08
significa javascript o objects notation
00:04:10
es el más usado es prácticamente el
00:04:13
estándar de hoy en día porque es muy
00:04:14
fácil de entender y muy fácil también
00:04:16
manipular por otro lado las apis pueden
00:04:20
ser públicas o privadas públicas
00:04:22
obviamente cualquier persona puede
00:04:24
acceder a esas apps y consultar la
00:04:26
información mientras que una api privada
00:04:28
requiere una autenticación cuando tú te
00:04:31
auténticas la primera vez el servidor te
00:04:33
devuelve un token ese toque es un objeto
00:04:36
que contiene todos los datos de esta
00:04:37
autenticación entonces cada vez que tú
00:04:40
solicitas alguna información adicional
00:04:41
el servidor revisará si el token todavía
00:04:44
está vigente y ya no te pedirá una nueva
00:04:46
autenticación el formato más común para
00:04:49
los tokens en apis rest es j w ahora
00:04:52
bien ya entendimos el concepto de apis
00:04:55
son interfaces para que programas de
00:04:57
software se comuniquen entre ellos y
00:04:59
compartan datos bajo ciertos estándares
00:05:01
y el más usado hoy en día eres y el
00:05:04
formato más usado para enviar datos es
00:05:06
jason no es el único pero es el más
00:05:08
usado ahora bien las apis pueden ser
00:05:11
locales o remotas las locales son las
00:05:13
que se ejecutan dentro del mismo entorno
00:05:16
por ejemplo estás desarrollando una
00:05:17
aplicación android y tú necesitas que
00:05:22
en una notificación vibre haga vibrar el
00:05:24
teléfono entonces te comunicas con la
00:05:26
api de vibración del teléfono entonces
00:05:27
todo ocurre ahí todo es local sin
00:05:30
embargo también pueden haber apis
00:05:31
remotas significa que tú obviamente
00:05:33
consumes datos de una aplicación que
00:05:36
está en otro lugar en otro punto del
00:05:39
mundo esto es mucho más grande pero lo
00:05:41
hemos querido simplificar en este cuadro
00:05:43
es mucho más grande pero esto te va a
00:05:46
ayudar mucho a entender cómo está
00:05:47
organizado esto las apis como hemos
00:05:49
dicho pueden ser locales o pueden ser
00:05:51
remotas ahora las remotas pueden
00:05:53
utilizar servicios web te expliqué que
00:05:55
eran un sistema de comunicación en una
00:05:57
red utilizando el protocolo http
00:05:59
entonces las sad y remotas pueden
00:06:01
utilizar servicios web es lo más común y
00:06:04
si usan servicios web pueden usar el
00:06:06
protocolo soap o pueden ser rest
00:06:09
el protocolo swap todavía se sigue
00:06:11
usando aunque no tanto ya pero en su
00:06:13
momento fue el más usado ahora la red es
00:06:16
hoy en día la arquitectura no es un
00:06:18
protocolo la arquitectura más usada para
00:06:20
apis y cuando tú creas un servicio web
00:06:23
usando la arquitectura red
00:06:25
estamos hablando de redes
00:06:27
ya hemos visto lo importante que es
00:06:29
entender cómo funcionan las app y si
00:06:31
eres desarrollador en algún momento vas
00:06:33
a tener que crear tu propia app y
00:06:34
obviamente también consumir apis de
00:06:36
terceros sí entonces cuando tú estás
00:06:38
desarrollando una app y redes debes
00:06:40
comprender ciertos conceptos en primer
00:06:43
lugar cada recurso que tú consultas cada
00:06:46
información que tú consultas tiene un
00:06:48
identificador único llamado uri y tú la
00:06:51
consultas por algo llamado en point que
00:06:53
es la url completa ahora bien esa uri
00:06:56
permite consultar directamente un
00:06:58
recurso por ejemplo de punto team
00:07:01
diagonal estudiantes diagonal álvaro
00:07:03
esto es un ejemplo entonces es un
00:07:05
identificador único y de esa manera
00:07:07
puedes encontrar cualquier recurso que
00:07:10
tú estás necesitando o una lista de
00:07:12
ellos ahora cuando tú solicitas una
00:07:16
información a través de una app y el
00:07:18
servidor puede contestarte con distintos
00:07:20
códigos con esos códigos vas a saber qué
00:07:22
pasó con tu petición por ejemplo los
00:07:24
códigos 200 son los códigos de que todo
00:07:26
fue exitoso un código 200 indica
00:07:29
respuesta exitosa un código 202 que ha
00:07:31
sido creado un nuevo recurso
00:07:33
los códigos 300 indican re direcciones
00:07:36
por ejemplo 301 una redirección
00:07:37
permanente de 313 una redirección
00:07:39
temporal los códigos 400 indican que tú
00:07:42
has hecho una solicitud inválida tal vez
00:07:44
a un recurso que no existe que es el 404
00:07:46
otra vez a un recurso al que tú no
00:07:48
tienes autorización que es el 403 y los
00:07:51
códigos 500 indican errores ya
00:07:53
directamente en el servidor según el
00:07:55
código que te responde el servidor tú
00:07:57
sabrás qué hacer con esta petición ahora
00:07:59
bien también tenemos los métodos http
00:08:02
estos métodos nos permiten interactuar
00:08:05
con la app y por ejemplo el método get
00:08:07
es solicitar información
00:08:09
el método post es enviar nueva
00:08:12
información por ejemplo si yo me
00:08:14
registro n de tim voy a de punto team y
00:08:17
creó mi cuenta de usuario estoy usando
00:08:19
el método post para enviar la nueva
00:08:21
información de un usuario el método put
00:08:24
es actualizar información que ya exista
00:08:26
por ejemplo yo voy a ese punto team y
00:08:28
cambio mi contraseña entonces estoy
00:08:30
utilizando el método put y bilic
00:08:32
obviamente para borrar
00:08:34
esto es equivalente al club de las bases
00:08:37
de datos no es lo mismo pero es
00:08:39
equivalente y como hemos dicho las apis
00:08:41
te pueden devolver la información en
00:08:42
distintos formatos el formato más común
00:08:44
es el formato jason pero no el único
00:08:46
también puedes usar a pires y devolver
00:08:48
formato xml o incluso texto plano para
00:08:52
que te estarás preguntando bueno hay
00:08:53
empresas que tienen sus sistemas que
00:08:55
necesitan xml y te lo van a pedir así
00:08:57
incluso texto plano entidades del estado
00:08:59
también te piden a veces texto plano lo
00:09:02
importante es que no tienes que usar
00:09:03
otro sistema puedes seguir utilizando a
00:09:05
pires y devolver ese tipo de formato y
00:09:07
para terminar las buenas prácticas
00:09:08
cuando tú desarrollas una app y hay
00:09:11
buenas prácticas que tú debes seguir
00:09:12
aquí te dejo algunas de ellas en primer
00:09:15
lugar gestos gestos significa que la app
00:09:18
y se autodescribe cada recurso tiene
00:09:21
información de cuál es el recurso
00:09:22
siguiente o de la cantidad de recursos
00:09:25
totales que hay porque no es tan
00:09:27
sencillo como un array que el primer
00:09:29
elemento es el índice 1 o 0 el segundo
00:09:32
es el índice 1 el tercero es el índice 2
00:09:33
y así correlativamente pueden haberse
00:09:35
eliminado los registros en el proceso y
00:09:38
tal vez el primer elemento ser uno y el
00:09:39
siguiente sí
00:09:40
tendrías 49 errores hasta llegar al
00:09:43
siguiente recurso cierto para esos
00:09:45
trajecitos luego la seguridad como hemos
00:09:47
dicho tienes apis públicas y apis
00:09:49
privadas y tú a pies privada debes
00:09:51
proteger la obviamente si no podrían
00:09:53
entrar a tu información
00:09:54
obtener extraer la base de datos tal vez
00:09:58
de tus usuarios o base de datos privadas
00:09:59
o incluso manipular la esto es muy
00:10:01
riesgoso así que debes asegurarla por
00:10:04
otro lado debes testear tú sabes testear
00:10:06
que todo funcione correctamente porque
00:10:08
es terrible cuando tú haces una app y
00:10:11
alguien la va a consumir y la persona
00:10:12
que la consume pues no encuentra la
00:10:15
información de vida o no funciona como
00:10:16
debería el testeo está muy ligado a la
00:10:18
documentación recuerda que si tú haces
00:10:21
una app y la estás haciendo para que
00:10:22
alguien la consuma porque es un sistema
00:10:24
de comunicación es una interfaz de
00:10:26
comunicación no tiene sentido hacerla si
00:10:28
nadie la va a consumir entonces
00:10:29
documenta en el de ti me hemos intentado
00:10:32
integrar algunas plataformas externas no
00:10:35
voy a decir nombres porque no quiero que
00:10:36
me demanden
00:10:37
queremos que intentado y hay algunas tan
00:10:40
mal documentadas que es
00:10:42
realmente un infierno implementar ese
00:10:44
tipo de app es así que documenta to up y
00:10:47
espero que te haya quedado clara la
00:10:48
importancia de desarrollar apps y de
00:10:51
consumir apis para que las aplicaciones
00:10:52
se comuniquen y sean mucho más
00:10:54
enriquecidas y puedas aprovechar el
00:10:57
desarrollo de otras empresas en tus
00:10:59
proyectos y viceversa
00:11:01
si quieres aprender a crear una app y
00:11:04
redes con buenas prácticas es decir todo
00:11:06
lo que explicado acá pero con mucho más
00:11:08
detalle y entrando al código metiéndole
00:11:10
las manos al código y viendo cómo
00:11:12
funciona cada detalle te invito este 18
00:11:15
de mayo al workshop creando app y redes
00:11:17
con buenas prácticas que va a impartir
00:11:19
nuestro sitio nuestro director de
00:11:21
tecnología en el steam alexis los hará
00:11:23
en ciudad de méxico este workshop es
00:11:25
presencial en persona lo vas a tener ahí
00:11:27
para preguntarle todo y todo lo que te
00:11:29
venga a la mente para que cada dólar que
00:11:31
pagues por este workshop valga valga la
00:11:34
pena ok entonces es un workshop de tres
00:11:37
horas es un workshop intensivo donde vas
00:11:39
a aprender las buenas prácticas y los
00:11:41
procesos para desarrollar a pires que
00:11:44
repito es muy importante para cualquier
00:11:46
programador sea cual sea tu área no
00:11:49
vemos de méxico
00:11:52
este 17 y 18 de mayo se llevará a cabo
00:11:56
el edecán mexico 2019 dos días de mucha
00:11:59
tecnología networking y emprendimiento
00:12:02
con el equipo de ede team por primera
00:12:04
vez en ciudad de méxico entra ya mismo a
00:12:06
punto team diagonal mexico para adquirir
00:12:09
tus entradas