Crear un aplicación tipo Uber o hacer cobros por Internet, ¿Te imaginas como podrías hacerlo desde cero? demandaría muchísimo trabajo y dinero, por eso es mejor utilizar un servicio que ya exista como lo es Google Maps ó conectarse a PayPal.
Si tu aplicación utiliza recursos de otra aplicación hace que sea más potente a diferencia de una aplicación que solo se maneja por sí sola, ese es el concepto de una API.
Las APIs son interfaces que permiten la comunicación entre dos aplicaciones de software siguiendo cierto conjunto de reglas.
La arquitectura más usada es REST y el formato de envió de datos más usado es JSON.
Todo desarrollador debe aprender a hacer APIs y saber consumir otras APIs.
Terminología
Ver esta publicación en Instagram
Una publicación compartida de EDteam (@edteamlat) el 10 Abr, 2019 a las 6:04 PDT
Interfaz
Permite que tú puedas consumir los servicios del sistema sin saber "que hay tras banbalinas". Ejemplo claro es el formulario de Login, en el cuál solo te interesa ingresar mas no saber qué pasa por detrás.
Entonces una API (Application Programming Interface) es una interfaz (valga la redundancia), que permite que aplicaciones de software puedan intercambiar datos entre ellos.
Arquitectura de software
Es la metodología en que esta diseñado un sistema, como están organizados, como es la comunicación y que roles cumplen los componentes.
Servicio Web
Sistema que permite que equipos en una red se puedan comunicar siguiendo el protocolo HTTP (conjunto de reglas entre cliente-servidor para intercambiar información), esta es la base para que las APIs remotas permitan la comunicación entre aplicaciones de distintas locaciones.
REST (Representational State Transfer) es una Arquitectura de Software.
Las API REST involucran:
- Guardar los datos en cache.
- El estado no se envía en las peticiones.
- Define permisos para que otra aplicacion pueda acceder, revisar o manipular datos de tu aplicacion.
Formato de envió de Datos
XML (Extensible Markup Language), formato tradicional.
JSON (Javascript Object Notation), el más utilizado hoy en día por su fácil manejo.
Texto Plano
Token
Público: Cualquiera puede consumir los datos
Privado: Requiere de autentificación
En el caso de los privados, después de autenticarte se devuelve un token que contiene tus datos y que estos te permiten consumir la API, a no ser que no sea válido o ya expiró.
El formato mas común para los token es JWT (JSON Web Tokens).
Tipos de API
Locales: Cuando la aplicación se comunica con la API que se encuentran en el mismo ambiente o dispositivo.
Remotas: Cuando la aplicación necesita consumir una API en un punto diferente.
Las Apis remotas pueden utilizar servicios web:
Soap: Es un protocolo que ya dejo de ser usado
Rest: Es la arquitectura mas usada, los Restful se basan en este.
Desarrollar una API
Consultar recursos (URI- Uniform Resource Identifier**)** Cada consulta tiene un identificador único llamado URI, este se consulta por Endpoints que es la URL completa, y que permite consultar directamente un recurso.
Códigos de Estado: Cuando solicitamos información, el servidor responde con códigos con los que podemos saber el estado de nuestra petición.
Ver esta publicación en Instagram
Una publicación compartida de EDteam (@edteamlat) el 12 Abr, 2019 a las 5:46 PDT
2xx: Indican que la petición se ha procesado correctamente.
3xx: Indican redirecciones, se deberá realizar una acción adicional para completar la petición.
**4xx:**Solicitud inválida, peticiones a recursos inexistentes o no autorizados.
5xx: Indican errores directos del servidor.
Métodos HTTP
Permiten interacción con la información de la API, es equivalente al CRUD de las bases de datos.
Ver esta publicación en Instagram
Una publicación compartida de EDteam (@edteamlat) el 15 Abr, 2019 a las 4:00 PDT
GET: Solicitar información
**POST:**Enviar nueva información, como por ejemplo el registro de una nueva cuenta.
PUT: Actualiza un recurso existente, como cambiar contraseña de una cuenta.
DELETE: Elimina un recurso.
Buenas Prácticas
HATEOAS:(Hypermedia as the Engine of Application State) La API se autodescribe, podemos ser capaces de descubrir sus recursos basándonos únicamente en las respuestas del servidor.
Seguridad: Si tu API es privada necesitas seguridad para evitar el acceso o la manipulación de tu información.
Testear: Asegurar que la API funcione correctamente y que cumpla la función para la que fue diseñada.
Documentar: Una documentación bien estructurada facilita el consumo de nuestra API.
Mira el video aquí: