10 - APIs
10 - APIs
10 - APIs
Con ello, no será necesario tener que reinventar la rueda con cada servicio que
se crea, ya que podrás utilizar piezas o funciones que otros ya han creado.
Imagínate que cada tienda online tuviera que tener su propio sistema de pago,
para los usuarios normales es mucho más cómodo poder hacerlo con los
principales servicios que casi todos utilizan.
Ejemplos de uso cotidiano de APIs
Por ejemplo, si queremos crear una aplicación que se conecte a las publicaciones
que hay en Twitter, tendremos que conectar la aplicación al servicio mediante la
API que Twitter tiene disponible para los desarrolladores. Y si queremos que esta
aplicación se comunique con la barra de notificaciones de un sistema operativo,
entonces también necesitará otra API del sistema operativo.
Otro ejemplo: cuando vas a comprar una entrada a través de la web de una sala
de cine. Cuando pones la información de tu tarjeta, la web utiliza una API para
enviarle esa información de forma remota a otro programa que verifica si tus
datos son correctos o es una tarjeta inventada. Una vez se verifica, este
programa remoto le dice a la web que todo está en orden, y esta ya te emite tus
entradas.
Tipos de API
API de SOAP: Estas API utilizan el protocolo simple de acceso a objetos. El cliente y el servidor
intercambian mensajes mediante XML. Se trata de una API menos flexible que era más popular en el
pasado.
API de RPC: Estas API se denominan llamadas a procedimientos remotos. El cliente completa una
función (o procedimiento) en el servidor, y el servidor devuelve el resultado al cliente.
API de WebSocket: La API de WebSocket es otro desarrollo moderno de la API web que utiliza
objetos JSON para transmitir datos. La API de WebSocket admite la comunicación bidireccional entre
las aplicaciones cliente y el servidor. El servidor puede enviar mensajes de devolución de llamada a
los clientes conectados, por lo que es más eficiente que la API de REST.
API de REST: Estas son las API más populares y flexibles que se encuentran en la web actualmente.
El cliente envía las solicitudes al servidor como datos. El servidor utiliza esta entrada del cliente para
iniciar funciones internas y devuelve los datos de salida al cliente. Veamos las API de REST con más
detalle a continuación.
Generalidades del protocolo HTTP
HTTP, de sus siglas en inglés: "Hypertext Transfer Protocol", es el nombre de
un protocolo el cual nos permite realizar una petición de datos y recursos,
como pueden ser documentos HTML. Es la base de cualquier intercambio de
datos en la Web, y un protocolo de estructura cliente-servidor, esto quiere
decir que una petición de datos es iniciada por el elemento que recibirá los
datos (el cliente), normalmente un navegador Web. Así, una página web
completa resulta de la unión de distintos sub-documentos recibidos, como,
por ejemplo: un documento que especifique el estilo de maquetación de la
página web (CSS), el texto, las imágenes, vídeos, scripts, etc...
HTTP es sencillo
Incluso con el incremento de complejidad, que se produjo en el desarrollo de la
versión del protocolo HTTP/2, en la que se encapsularon los mensajes, HTTP esta
pensado y desarrollado para ser leído y fácilmente interpretado por las personas,
haciendo de esta manera más facil la depuración de errores, y reduciendo la curva
de aprendizaje para las personas que empiezan a trabajar con él.
HTTP es extensible
Presentadas en la versión HTTP/1.0, las cabeceras de HTTP han hecho que este
protocolo sea fácil de ampliar y de experimentar con él. Funcionalidades nuevas
pueden desarrollarse, sin más que un cliente y su servidor, comprendan la misma
semántica sobre las cabeceras de HTTP.
HTTP es un protocolo con sesiones, pero sin estados.
Significa que no guarda ningún dato entre dos peticiones en la misma sesión.
Esto crea problemáticas, en caso de que los usuarios requieran interactuar con
determinadas páginas Web de forma ordenada y coherente, por ejemplo, para
el uso de "cestos de compra" en páginas que utilizan en comercio electrónico.
Pero, mientras HTTP ciertamente es un protocolo sin estado, el uso de HTTP
cookies, sí permite guardar datos con respecto a la sesión de comunicación.
Usando la capacidad de ampliación del protocolo HTTP, las cookies permiten
crear un contexto común para cada sesión de comunicación.
¿Qué es un servidor Web?
Un servidor web se define como un software que hace uso del HTTP
(Hypertext Transfer Protocol) para almacenar los archivos que forman los
sitios web y mostrarlos a los usuarios cuando estos lo solicitan.
Por lo tanto, cualquier tipo de sitio web requiere de un servidor de este tipo.
Algunas empresas, generalmente de gran tamaño, cuentan con un servidor
web propio. No obstante, en la gran mayoría de ocasiones, tanto particulares
como compañías, optan por contratar este servicio a un proveedor de
alojamiento web como Amazon.
El protocolo utilizado para la transmisión de archivos es HTTP o HTTPS (ofrece un nivel extra
de seguridad gracias al cifrado). Este protocolo se basa a su vez en los protocolos de red IP y
TCP. Así, un servidor web puede mostrar el contenido de un sitio web de forma simultánea a
varios navegadores web.
Así, es importante escoger el servidor web que mejor se adapte a las necesidades de cada
persona o empresa. El principal objetivo es evitar sobrecargas en el servidor que puedan
ralentizar la velocidad de carga del sitio web. HTTP engloba una serie de métodos de petición
que permiten indicar la acción a realizar para un determinado recurso.
¿Qué es una URL?
Junto con el Hipertexto y HTTP, las URL son uno de los conceptos claves de la Web. Es el
mecanismo usado por los navegadores para obtener cualquier recurso publicado en la web.
URL significa Uniform Resource Locator (Localizador de Recursos Uniforme). Una URL no es
más que una direccion que es dada a un recurso único en la Web. En teoría, cada URL válida
apunta a un único recurso. Dichos recursos pueden ser páginas HTML, documentos CSS,
imágenes, etc. En la práctica, hay algunas excepciones, siendo la más común una URL
apuntando a un recurso que ya no existe o que ha sido movido. Como el recurso
representado por la URL y la URL en sí son manejadas por el servidor Web, depende del
dueño del servidor web manejar ese recurso y su URL asociada adecuadamente.
Ejemplo: www.google.com
Partes de una URL
Protocolo: Indica al navegador cómo debe conectarse al servidor. No es lo
mismo "http://" que su versión segura ("https://") —aunque ambas se
conectan a páginas web—, o que "mailto://" (para direcciones de e-mail),
"ftp://", "gopher://", etc. Uso obligatorio, aunque los navegadores ya no
siempre lo muestran.
Información de login: Podemos indicar sólo el nombre de usuario o incluir
también la contraseña. Uso opcional y cada vez menos frecuente.
Dominio: Es el eje en torno al cual gira una URL, le dice al navegador a qué
máquina de Internet conectarse (con la ayuda de las DNS). Uso obligatorio. En
algunos casos puede aparecer dividido por un punto, indicando un
'subdominio' (1ercurso.colegio.es).
Puerto: Cada protocolo tiene un puerto o puertos vinculados por defecto,
pero en algunos casos podemos querer indicar al navegador que se conecte,
por ejemplo, a un servidor web secundario instalado en la misma máquina
que otro: en esos casos, lo habitual es recurrir a especificar un puerto distinto.
Uso opcional.
Parámetro: También conocido como 'query', describimos aquí con detalle sus
múltiples usos.
{"count":1292,"next":"https://pokeapi.co/api/v2/pokemon?offset=3
&limit=3","previous":null,"results":[{"name":"bulbasaur","url":"
https://pokeapi.co/api/v2/pokemon/1/"},{"name":"ivysaur","url":"
https://pokeapi.co/api/v2/pokemon/2/"},{"name":"venusaur","url":
"https://pokeapi.co/api/v2/pokemon/3/"}]}