APIs y JSON: Comunicación entre Servidores y Aplicaciones Web

2/21
Recursos
Transcripción

Las APIs (Application Programming Interfaces) permiten que los computadores se comuniquen entre ellos de manera estructurada, usando formatos que ambos pueden entender. Son esenciales en el desarrollo moderno, automatizando procesos y facilitando la integración entre sistemas, como el caso de las plataformas de pago o la personalización de publicidad. JSON es el formato más utilizado en estas interacciones, permitiendo compartir información como texto, arreglos y objetos. Las APIs REST, basadas en JSON y HTTP, aseguran comunicaciones predecibles entre servidores y clientes.

¿Qué es una API y cómo funciona?

  • Las APIs permiten la comunicación entre computadores de manera estructurada.
  • Se utilizan principalmente para enviar solicitudes y recibir respuestas entre servidores o entre un servidor y un cliente.
  • Son fundamentales para la automatización de tareas en el desarrollo web moderno.

¿Cómo se usan las APIs en la vida cotidiana?

  • Existen APIs comunes, como la de Facebook, que utiliza tus búsquedas para mostrarte publicidad personalizada.
  • Las APIs de pago, como Stripe, permiten gestionar tarjetas de crédito de manera segura.
  • Estas herramientas evitan que los desarrolladores deban implementar complejas normativas de seguridad en sus propios servidores.

¿Qué es el formato JSON y por qué es importante?

  • JSON (JavaScript Object Notation) es el formato estándar para enviar y recibir datos a través de APIs.
  • Permite almacenar y estructurar información como texto, arreglos y objetos.
  • Por ejemplo, un usuario puede tener varios hobbies, y estos se almacenan en un arreglo dentro de un JSON.

¿Cómo se estructuran las APIs REST?

  • REST (Representational State Transfer) es una arquitectura que define cómo deben enviarse los mensajes a través de HTTP usando JSON.
  • Garantiza que las comunicaciones sean predecibles, lo que significa que las mismas solicitudes siempre producirán los mismos resultados.

¿Cuáles son los métodos principales de una API REST?

  • GET: Se utiliza para obtener información. Puede devolver una lista de recursos o un recurso específico.
  • POST: Permite crear nuevos recursos, como agregar un nuevo usuario.
  • DELETE: Utilizado para eliminar un recurso existente.
  • PUT y PATCH: Modifican la información de un recurso, ya sea un solo campo o todo el contenido.

Aportes 19

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

**Concepto de REST** REST, significa "**R**epresentational **S**tate **T**ransfer". 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** 1. **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. 2. **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. 3. **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. 4. **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. 5. **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.
Curso esperadisimo! fue mi primer framework y siempre lo tendré en el corazón, ademas siempre me gusta armar backends con frameworks python.
La voz va mas rapido que en video :')
🟢 **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! 🚀🚀
Este editor de código me gusta mucho porque permite formatear el texto y corregir pequeños errores: <https://jsoneditoronline.org/#left=local.javibu> Ejemplo: ![](https://static.platzi.com/media/user_upload/image-64d6e779-0984-4124-beea-0f8915cf193f.jpg)
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.
**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.
# **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 1. **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. 2. **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. 3. **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. 4. **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. 5. **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.
- **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: <https://jsonlint.com/>
Hace años que espero este curso!
```js { "name": "Angel", "last_name": "Larios", "username": "Lars", "email": "[email protected]", "hobbies": ["Viajar", "Correr", "Tenis de Mesa"] } ```
```js [ { "nombre": "Edward", "apellido": "Rodríguez", "email": "[email protected]", "edad": 30, "hobbies": [ "programar", "jugar videojuegos", "viajes en moto", "estudiar" ], "ciudad": "Medellín", "pais": "Colombia" }, { "nombre": "Juan David", "apellido": "Rodríguez", "email": "[email protected]", "edad": 24, "hobbies": [ "escuchar música", "programar", "jugar videojuegos" ], "ciudad": "Medellín", "pais": "Colombia" } ] ```\[ { "nombre": "Edward", "apellido": "Rodríguez", "email": "[email protected]", "edad": 30, "hobbies": \[ "programar", "jugar videojuegos", "viajes en moto", "estudiar" ], "ciudad": "Medellín", "pais": "Colombia" }, { "nombre": "Juan David", "apellido": "Rodríguez", "email": "[email protected]", "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.
```js [ { "nombre": "Carlos", "apellido": "García", "email": "[email protected]", "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": "[email protected]", "edad": 34, "intereses": ["lectura", "cocina", "yoga"], "direccion": { "calle": "Avenida de la Paz 45", "ciudad": "Barcelona", "codigo_postal": "08002" } }, { "nombre": "Luis", "apellido": "Rodríguez", "email": "[email protected]", "edad": 22, "intereses": ["videojuegos", "tecnología", "cine"], "direccion": { "calle": "Calle Luna 67", "ciudad": "Sevilla", "codigo_postal": "41003" } }, { "nombre": "Ana", "apellido": "Martínez", "email": "[email protected]", "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": "[email protected]", "edad": 40, "intereses": ["deportes", "montañismo", "lectura"], "direccion": { "calle": "Camino Real 101", "ciudad": "Bilbao", "codigo_postal": "48005" } } ] ```\[ { "nombre": "Carlos", "apellido": "García", "email": "[email protected]", "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": "[email protected]", "edad": 34, "intereses": \["lectura", "cocina", "yoga"], "direccion": { "calle": "Avenida de la Paz 45", "ciudad": "Barcelona", "codigo\_postal": "08002" } }, { "nombre": "Luis", "apellido": "Rodríguez", "email": "[email protected]", "edad": 22, "intereses": \["videojuegos", "tecnología", "cine"], "direccion": { "calle": "Calle Luna 67", "ciudad": "Sevilla", "codigo\_postal": "41003" } }, { "nombre": "Ana", "apellido": "Martínez", "email": "[email protected]", "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": "[email protected]", "edad": 40, "intereses": \["deportes", "montañismo", "lectura"], "direccion": { "calle": "Camino Real 101", "ciudad": "Bilbao", "codigo\_postal": "48005" } } ]
\[ { "nombre": "Carlos", "apellido": "García", "email": "[email protected]", "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": "[email protected]", "edad": 34, "intereses": \["lectura", "cocina", "yoga"], "direccion": { "calle": "Avenida de la Paz 45", "ciudad": "Barcelona", "codigo\_postal": "08002" } }, { "nombre": "Luis", "apellido": "Rodríguez", "email": "[email protected]", "edad": 22, "intereses": \["videojuegos", "tecnología", "cine"], "direccion": { "calle": "Calle Luna 67", "ciudad": "Sevilla", "codigo\_postal": "41003" } }, { "nombre": "Ana", "apellido": "Martínez", "email": "[email protected]", "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": "[email protected]", "edad": 40, "intereses": \["deportes", "montañismo", "lectura"], "direccion": { "calle": "Camino Real 101", "ciudad": "Bilbao", "codigo\_postal": "48005" } } ]
```js [ { "nombre": "Juan", "apellido": "Perez", "hobbies": ["programar", "trotar", "aprender"], "contacto": { "email": "[email protected]", "redes": "juan_perez_dev" } }, { "nombre": "Maria", "apellido": "Gonzalez", "hobbies": ["pintar", "viajar", "cocinar"], "contacto": { "email": "[email protected]", "redes": "maria_artista" } }, { "nombre": "Carlos", "apellido": "Rodriguez", "hobbies": ["leer", "nadar", "fotografía"], "contacto": { "email": "[email protected]", "redes": "carlos_fotografia" } }, { "nombre": "Ana", "apellido": "Martinez", "hobbies": ["yoga", "jardinería", "música"], "contacto": { "email": "[email protected]", "redes": "ana_zen" } }, { "nombre": "Luis", "apellido": "Sanchez", "hobbies": ["fútbol", "ajedrez", "cine"], "contacto": { "email": "[email protected]", "redes": "luis_cineasta" } } ] ```
Comencemos la práctica: ```js { "nombre": "Javier", "apellido": "Giraldo", "hobbies": [ "Viajar", "Programar", "Estudiar", "Automatizar" ], "contacto": { "email": "[email protected]", "redes": "kappak" }, "residencia": { "pais": "Colombia", "ciudad": "Medellín" } } ```
Pongo dos de los diez elementos que hice para el JSON: ```js [ { "nombre": "Tony", "apellido": "Demarco", "hobbies": ["Crossfit", "Data", "Ravenclaw", "Viajes", "Gastronomía"], "pais": "Uruguay", "ciudad": "Montevideo", "contacto": { "email": "[email protected]", "redes": "@soy_tony_dem_bony" } }, { "nombre": "Laura", "apellido": "Gómez", "hobbies": ["Yoga", "Lectura", "Gryffindor", "Viajes", "Fotografía"], "pais": "España", "ciudad": "Barcelona", "contacto": { "email": "[email protected]", "redes": "@laura_yoga_travel" } } ```