Aprende, paso a paso, cómo una API permite que dos computadores se comuniquen mediante HTTP y JSON. Verás cómo automatizar tareas, estructurar datos con listas y objetos anidados, y operar recursos con métodos como GET, POST, DELETE, PUT y PATCH. Ejemplos como la API de Facebook y Stripe ilustran su impacto en la vida real.
¿Qué es una API y por qué es clave en desarrollo web?
Una API es una interfaz creada por desarrolladores para que dos computadores “hablen” entre sí. Un servidor recibe un request y responde con un response específico. Esta comunicación también puede ser entre servidores para consultar datos que se requieren.
Automatiza tareas repetitivas y masivas. Por ejemplo: crear mil facturas con un solo proceso automatizado.
Conecta servicios que usas a diario. La API de Facebook usa la cookie de tu búsqueda para mostrarte publicidad relevante.
Integra pagos seguros. Stripe permite guardar tarjetas de crédito cumpliendo estándares de seguridad sin que tú tengas que implementarlos en tu servidor.
Acelera el desarrollo: crea, borra u obtiene información sin intervención manual.
¿Cómo fluye la comunicación request/response?
Envías un request a un servidor mediante una API.
Recibes un response con datos o confirmaciones en JSON.
También puede ser servidor a servidor para obtener información requerida.
¿Qué ganamos con la automatización?
Menos trabajo manual y menos errores.
Procesos consistentes y repetibles.
Escalabilidad para manejar grandes volúmenes de operaciones.
¿Cómo se estructura la información con JSON?
El formato JSON organiza datos de forma estructurada para compartirlos entre servidores o entre un servidor y un front end. Permite texto, listas (arrays) y objetos anidados.
Campos entre comillas dobles y separados por comas.
Sin coma al final del último campo.
Listas para múltiples valores (por ejemplo, hobbies).
Objetos anidados para datos relacionados (por ejemplo, contacto con email y redes sociales).
Un editor como Visual Studio Code detecta y colorea JSON.
Validadores en línea: busca “validar JSON” para confirmar que sea válido.
¿Cómo opera REST con métodos HTTP sobre recursos?
La arquitectura REST define reglas para enviar mensajes con HTTP y JSON. Se busca que las operaciones sean idempotentes (que “siempre pase lo mismo” con el mismo mensaje) y que exista una estructura clara y predecible. Un “usuario” es un recurso y su URL representa al recurso o a su lista.
¿Qué hace cada método sobre el recurso usuarios?
GET /usuarios: obtiene la lista de usuarios.
GET /usuarios/{id}: obtiene un usuario por su identificador único.
POST /usuarios: crea un nuevo usuario enviando datos en JSON.
DELETE /usuarios/{id}: intenta borrar un usuario y devuelve confirmación en JSON.
PUT /usuarios/{id}: modifica todo el usuario.
PATCH /usuarios/{id}: modifica un campo específico.
¿Qué comportamiento se espera al consultar o borrar?
Se menciona que una API Rest puede permitir hacer GET o DELETE a cualquier identificador, exista o no, y responder en JSON indicando el resultado.
La estructura consistente ayuda a trabajar en el entorno de desarrollo sin sorpresas.
¿Listo para practicar? Comparte en comentarios una lista de usuarios en JSON válida (usa un validador antes de pegarla).
REST, significa "Representational State Transfer". Es un estilo arquitectónico para diseñar servicios web. Se basa en una serie de principios y restricciones que permiten la comunicación entre sistemas a través de la web de manera eficiente y escalable.
Principios Clave de REST
Recursos: En REST, todo se trata de recursos, que son entidades que pueden ser representadas en diferentes formatos (como JSON o XML). Cada recurso tiene una URL única que lo identifica.
Métodos HTTP: REST utiliza los métodos HTTP estándar para realizar operaciones sobre los recursos. Los métodos más comunes son:
GET: Para obtener información sobre un recurso.
POST: Para crear un nuevo recurso.
PUT: Para actualizar un recurso existente.
DELETE: Para eliminar un recurso.
Stateless: Cada solicitud del cliente al servidor debe contener toda la información necesaria para entender y procesar la solicitud. Esto significa que el servidor no almacena el estado del cliente entre las solicitudes, lo que mejora la escalabilidad.
Representaciones: Los recursos pueden ser representados de diferentes maneras. Por ejemplo, al solicitar un recurso, el servidor puede devolverlo en formato JSON o XML, dependiendo de lo que el cliente solicite.
Navegabilidad: REST promueve el uso de hipermedios (enlaces) para permitir a los clientes navegar entre los recursos disponibles, lo que facilita la interacción con la API.
Conclusión
REST se ha convertido en un estándar popular para construir APIs debido a su simplicidad y flexibilidad. Al seguir estos principios, los desarrolladores pueden crear servicios web que son fáciles de usar y mantener, permitiendo una integración fluida entre diferentes aplicaciones y plataformas.
Gracias por las notas!
Diferencia entre PUT y PATCH:
PUT: Actualiza todos los atributos de un recurso.
PATCH: Actualización parcial del recurso (uno o más).
Tomarlo encuenta, cuando realize mi primera API no conocia PATCH.
🟢 Métodos HTTP que quizás no conocías
Además de los métodos HTTP más comunes como GET, POST, PUT y DELETE, existen varios otros métodos HTTP. Aquí tienes algunos:
HEAD: Similar a GET, pero solo devuelve los encabezados de la respuesta, sin el cuerpo. Se utiliza para obtener metadatos.
OPTIONS: Permite al cliente consultar qué métodos HTTP son soportados por el servidor para un recurso específico.
CONNECT: Se usa para establecer un túnel de comunicación a través del servidor, comúnmente utilizado con HTTPS.
TRACE: Permite a un cliente realizar una prueba de ruta, devolviendo la cadena de solicitud recibida en el servidor. Se usa principalmente para diagnóstico.
COPY: Permite copiar un recurso de una ubicación a otra en el servidor.
LINK: Se usa para crear una relación entre dos recursos.
UNLINK: Se utiliza para eliminar una relación entre recursos.
PURGE: Comúnmente utilizado en cachés para eliminar un recurso específico.
Cada método tiene su propósito y uso particular, y es importante comprenderlos para aprovechar al máximo las capacidades de una REST API.
¡Nunca pares de aprender! 🚀🚀
Gracias por el dato crack 👌😁
Curso esperadisimo! fue mi primer framework y siempre lo tendré en el corazón, ademas siempre me gusta armar backends con frameworks python.
Una API (Application Programming Interface) es un conjunto de definiciones y protocolos que permiten que dos sistemas de software se comuniquen entre sí. Las APIs definen cómo las funciones deben ser solicitadas por otros programas, qué datos deben proporcionarse, y qué resultados pueden esperarse. En otras palabras, las APIs permiten que aplicaciones diferentes interactúen sin necesidad de conocer los detalles internos de cada una.
La voz va mas rapido que en video :')
Sii, pensé que algo le pasaba a mi computadora 🤣.
[
{
"Nombre":"Juan",
"Apelllido":"Martinez",
"Hobbies":[
"viajar",
"Programar",
"enseñar"
],
"contacto":{
"email":"ndjd@gmail.com",
"telefono":"455475285"
}
},
{
"Nombre":"Carmen",
"Apelllido":"Sanchez",
"Hobbies":[
"viajar",
"Programar",
"enseñar"
],
"contacto":{
"email":"njkd@gmail.com",
"telefono":"455898285"
}
},
{
"Nombre":"Erick",
"Apelllido":"contrera",
"Hobbies":[
"viajar",
"Programar",
"enseñar"
],
"contacto":{
"email":"ndfdfdfd@gmail.com",
"telefono":"455575285"
}
}
]
[
{
"user1": "andres",
"age": 10
},
{
"user2": "david",
"age": 10
},
{
"user3": "carlitos",
"age": 10
}
]
Este editor de código me gusta mucho porque permite formatear el texto y corregir pequeños errores:
Ejemplo:
Introducción a las APIs, REST y JSON
Una API (Interfaz de Programación de Aplicaciones, por sus siglas en inglés) es un conjunto de reglas que permite a diferentes programas interactuar entre sí, facilitando la comunicación entre sistemas. Las APIs son esenciales para el desarrollo de aplicaciones modernas, ya que permiten que software de diferentes plataformas se comunique de manera efectiva, compartiendo datos y funcionalidades.
Dentro del mundo de las APIs, el estilo arquitectónico REST (Representational State Transfer) ha ganado popularidad por su simplicidad y flexibilidad, especialmente en la creación de servicios web.
JSON (JavaScript Object Notation) es uno de los formatos más comunes para intercambiar datos en las APIs REST, ya que es ligero, legible y fácil de manipular tanto por máquinas como por humanos.
Concepto de REST
REST es un conjunto de principios arquitectónicos para diseñar servicios web escalables y eficientes. Su enfoque en la comunicación entre sistemas a través de recursos claramente definidos hace que sea una opción preferida para crear APIs robustas y fáciles de mantener.
Principios Clave de REST
Recursos: En REST, todo gira en torno a los recursos, que son entidades representadas por URLs únicas. Estos recursos pueden ser devueltos en diferentes formatos, como JSON o XML, según lo solicite el cliente.
Métodos HTTP: REST utiliza los métodos estándar de HTTP para realizar operaciones sobre los recursos:
GET: Obtener información sobre un recurso.
POST: Crear un nuevo recurso.
PUT: Actualizar un recurso existente.
DELETE: Eliminar un recurso.
Stateless: REST es stateless, lo que significa que cada solicitud del cliente debe contener toda la información necesaria. El servidor no mantiene el estado del cliente entre las solicitudes, lo que mejora la escalabilidad y la eficiencia.
Representaciones: Los recursos pueden representarse de diferentes maneras (JSON, XML, etc.). El cliente puede solicitar el formato que le convenga, y el servidor responderá en consecuencia.
Navegabilidad: REST promueve el uso de hipermedios (enlaces) dentro de las representaciones de recursos, permitiendo a los clientes navegar y descubrir otros recursos relacionados.
Conclusión
REST se ha convertido en un estándar para la creación de APIs debido a su simplicidad y capacidad de adaptación. Combinado con JSON como formato de intercambio de datos, REST permite una integración fluida y eficiente entre diversas aplicaciones y plataformas, facilitando el desarrollo de servicios web escalables y fáciles de mantener.
[
{
"nombre": "Damian Felipe",
"apellidos": "Rengifo Rincon",
"username": "repoio",
"edad": 20,
"hobbies": ["videojuegos", "leer", "estudiar"],
"mascotas": ["papi", "bonnie"],
"contacto": {
"email": "damianfelipe.rengiforincon@gmail.com",
"linkedin": "Damian Rengifo",
"telefono": 3188309856
}
},
{
"nombre": "Juliana Rincon",
"apellidos": "Rengifo Rincon",
"username": "wentry",
"edad": 21,
"hobbies": [ "estudiar", "comer"],
"mascotas": ["papi", "bonnie"],
"contacto": {
"email": "julianajiseth@gmail.com",
"linkedin": "Juliana Rengifo",
"telefono": 31213141123
}
}
]
APIs: Interfaces que permiten la comunicación entre computadoras.
Formato JSON: Estructura para enviar y recibir datos; permite almacenar texto, arreglos y objetos.
Arquitectura REST: Define cómo se envían mensajes a través de HTTP; garantiza que operaciones sean idempotentes.
Métodos HTTP:
GET: Obtener recursos (todos o específicos).
POST: Crear nuevos recursos.
DELETE: Borrar recursos.
PUT/PATCH: Modificar recursos existentes.
Práctica: Crear y validar JSON para interacciones con APIs.
Un validador de JSON muy usuado es:
Hace años que espero este curso!
{"name":"Angel","last_name":"Larios","username":"Lars","email":"lars@lars.com","hobbies":["Viajar","Correr","Tenis de Mesa"]}
[{"nombre":"Edward","apellido":"Rodríguez","email":"ed.rodriguez9408@gmail.com","edad":30,"hobbies":["programar","jugar videojuegos","viajes en moto","estudiar"],"ciudad":"Medellín","pais":"Colombia"},{"nombre":"Juan David","apellido":"Rodríguez","email":"j.rodriguez@mail.com","edad":24,"hobbies":["escuchar música","programar","jugar videojuegos"],"ciudad":"Medellín","pais":"Colombia"}]```\[{"nombre":"Edward","apellido":"Rodríguez","email":"ed.rodriguez9408@gmail.com","edad":30,"hobbies": \["programar","jugar videojuegos","viajes en moto","estudiar"],"ciudad":"Medellín","pais":"Colombia"},{"nombre":"Juan David","apellido":"Rodríguez","email":"j.rodriguez@mail.com","edad":24,"hobbies": \["escuchar música","programar","jugar videojuegos"],"ciudad":"Medellín","pais":"Colombia"}]
JSON o JavaScript Object Notation, es un formato de texto ligero y fácil de leer para el intercambio de datos.
Aunque se basa en la sintaxis de JavaScript, JSON es independiente del lenguaje de programación, lo que lo hace muy versátil y ampliamente utilizado en diversas aplicaciones.
[{"nombre":"Carlos","apellido":"García","email":"carlos.garcia@example.com","edad":28,"intereses":["fútbol","música","viajes"],"direccion":{"calle":"Calle Mayor 123","ciudad":"Madrid","codigo_postal":"28013"}},{"nombre":"María","apellido":"Fernández","email":"maria.fernandez@example.com","edad":34,"intereses":["lectura","cocina","yoga"],"direccion":{"calle":"Avenida de la Paz 45","ciudad":"Barcelona","codigo_postal":"08002"}},{"nombre":"Luis","apellido":"Rodríguez","email":"luis.rodriguez@example.com","edad":22,"intereses":["videojuegos","tecnología","cine"],"direccion":{"calle":"Calle Luna 67","ciudad":"Sevilla","codigo_postal":"41003"}},{"nombre":"Ana","apellido":"Martínez","email":"ana.martinez@example.com","edad":29,"intereses":["arte","fotografía","viajes"],"direccion":{"calle":"Paseo del Río 89","ciudad":"Valencia","codigo_postal":"46001"}},{"nombre":"Jorge","apellido":"López","email":"jorge.lopez@example.com","edad":40,"intereses":["deportes","montañismo","lectura"],"direccion":{"calle":"Camino Real 101","ciudad":"Bilbao","codigo_postal":"48005"}}]```\[ { "nombre":"Carlos", "apellido":"García", "email":"carlos.garcia@example.com", "edad":28, "intereses": \["fútbol","música","viajes"], "direccion":{ "calle":"Calle Mayor 123", "ciudad":"Madrid", "codigo\_postal":"28013" } }, { "nombre":"María", "apellido":"Fernández", "email":"maria.fernandez@example.com", "edad":34, "intereses": \["lectura","cocina","yoga"], "direccion":{ "calle":"Avenida de la Paz 45", "ciudad":"Barcelona", "codigo\_postal":"08002" } }, { "nombre":"Luis", "apellido":"Rodríguez", "email":"luis.rodriguez@example.com", "edad":22, "intereses": \["videojuegos","tecnología","cine"], "direccion":{ "calle":"Calle Luna 67", "ciudad":"Sevilla", "codigo\_postal":"41003" } }, { "nombre":"Ana", "apellido":"Martínez", "email":"ana.martinez@example.com", "edad":29, "intereses": \["arte","fotografía","viajes"], "direccion":{ "calle":"Paseo del Río 89", "ciudad":"Valencia", "codigo\_postal":"46001" } }, { "nombre":"Jorge", "apellido":"López", "email":"jorge.lopez@example.com", "edad":40, "intereses": \["deportes","montañismo","lectura"], "direccion":{ "calle":"Camino Real 101", "ciudad":"Bilbao", "codigo\_postal":"48005" } }]