
Este documento informativo resume los temas principales y los conceptos más importantes discutidos en los dos videos de Exponent sobre preguntas de entrevista para APIs REST, diferenciando entre el nivel principiante y avanzado.
Fuente 1: «REST API Interview Questions (Beginner Level)»
Este video se enfoca en los fundamentos de las APIs REST, explicando conceptos esenciales para aquellos que se están iniciando en el tema o preparándose para entrevistas de nivel básico.
Temas Principales e Ideas Clave:
- Naturaleza Sin Estado (Statelessness): Una característica fundamental de las APIs REST es que el servidor no almacena información sobre el estado del cliente entre solicitudes. Cada petición del cliente debe contener toda la información necesaria para que el servidor la procese.
- Cita: «the rest architecture requires that the client states is not stored on the server instead each request made by the client must contain all necessary information for that particular HTTP method so that’s how rest apis are stateless».
- Métodos HTTP: Se explican los métodos HTTP más comunes y su correspondencia con las operaciones CRUD (Crear, Leer, Actualizar, Eliminar).
- GET: Obtiene un recurso del servidor (Leer).
- POST: Solicita la creación de un nuevo recurso en el servidor (Crear).
- PUT: Solicita la actualización de un recurso existente (Actualizar).
- DELETE: Solicita la eliminación de un recurso (Eliminar).
- Códigos de Estado HTTP: Se describen los tipos de códigos de estado más comunes utilizados en las respuestas del servidor para indicar el resultado de una solicitud.
- 2xx (ej. 200): Indica éxito.
- 4xx (ej. 400): Indica un error del lado del cliente.
- 5xx (ej. 500): Indica un error del lado del servidor.
- URI (Uniform Resource Identifier): Se define como el identificador único de cada recurso en la arquitectura REST. Se mencionan los dos tipos: URN (nombre único y persistente) y URL (ubicación web), siendo las URLs las más comunes en el diseño de APIs REST.
- Buenas Prácticas para URIs: Se ofrecen recomendaciones para diseñar URIs RESTful y consistentes:
- Utilizar la barra diagonal (/) para indicar jerarquía.
- Usar sustantivos en plural para los recursos.
- Usar guiones (-) para separar palabras.
- Usar minúsculas.
- Evitar el uso de extensiones de archivo.
- Diferencias entre REST y SOAP: Se contrastan REST (una arquitectura) con SOAP (un protocolo). SOAP se describe como más estricto, a menudo con conexión más cercana entre cliente y servidor, y con soporte principal para XML. REST se presenta como más flexible, permitiendo diversos formatos de datos (como JSON y XML).
- Diferencias entre REST y AJAX: Se aclara que AJAX (Asynchronous JavaScript and XML) es un conjunto de tecnologías web para realizar solicitudes asíncronas, mientras que REST es una arquitectura para manejar solicitudes HTTP. Una API REST puede ser consumida por clientes AJAX.
- Herramientas para Desarrollo y Pruebas: Se mencionan herramientas como Postman para probar APIs REST y se indica que las herramientas de desarrollo dependen del lenguaje de programación utilizado (ej. Express para Node.js).
- Ejemplos Reales de APIs REST: Se ilustra su uso común en la web, como la obtención de HTML para un sitio web o la manipulación de datos de una base de datos.
- Ventajas y Desventajas de las APIs REST:Ventajas: Facilidad de aprendizaje, amplia gama de formatos de datos, naturaleza sin estado que simplifica la experiencia del cliente y escalabilidad.
- Desventajas: Dificultad para mantener sesiones debido a la falta de estado, ausencia de medidas de seguridad integradas, necesidad de versionado y posible complejidad en el mantenimiento de URIs para proyectos grandes.
Fuente 2: «REST API Interview Questions (Advanced Level)»
Este video profundiza en aspectos más avanzados de las APIs REST, abordando preguntas típicas en entrevistas para roles con mayor experiencia.
Temas Principales e Ideas Clave:
- Diferencia entre PUT, POST y PATCH: Se detallan las diferencias entre estos métodos HTTP utilizados para la manipulación de recursos.
- PUT: Se utiliza para actualizar un recurso específico existente, reemplazando el recurso completo con los datos proporcionados.
- POST: Se utiliza para crear un nuevo recurso.
- PATCH: Se utiliza para actualizar un recurso específico existente, modificando solo los datos proporcionados sin reemplazar el recurso completo.
- Cita: «the key difference is that put is used to update a specified existing resource while post is used to create a new resource there’s also the method patch which is another way of updating a particular resource the difference between put and patch is that patch alters only the data that is specified whereas put replaces the entire resource with a new resource comprised of the given data».
- Payload: Se define como cualquier dato transferido en una solicitud o respuesta a través de la API REST.
- Cita: «payload refers to any data that has been transferred via request or response through the rest api».
- Mensaje REST: Se explica que cada respuesta a menudo incluye un mensaje en el cuerpo asociado al código de estado, crucial para depuración y pruebas.
- Cita: «there’s typically a message within every response body associated with the provided status code this message is one of the most important parts of debugging and testing a rest api».
- Componentes de una Petición HTTP: Se enumeran y describen los cinco componentes principales:
- Método (Verb): La acción a realizar (GET, POST, PUT, DELETE, etc.).
- URI: Identifica el recurso.
- Versión HTTP: Indica la versión del protocolo HTTP utilizada.
- Encabezado de Petición (Request Header): Contiene metadatos (formato del mensaje, configuración de caché, etc.).
- Cuerpo de Petición (Request Body): Contiene los datos que se envían.
- Componentes de una Respuesta HTTP: Se enumeran y describen los cuatro componentes principales:
- Código de Estado: Indica el resultado de la solicitud.
- Versión HTTP: Indica la versión del protocolo HTTP utilizada.
- Encabezado de Respuesta (Response Header): Contiene metadatos de la respuesta (longitud del contenido, tipo de contenido, fecha, etc.).
- Cuerpo de Respuesta (Response Body): Contiene los datos devueltos. Se menciona que, aunque una petición no siempre tiene un cuerpo, una respuesta siempre debería tenerlo.
- Métodos Idempotentes: Se define un método idempotente como aquel que produce el mismo resultado sin importar cuántas veces se realice la misma solicitud. Se destaca su importancia en las APIs REST debido a la naturaleza sin estado y la posibilidad de múltiples solicitudes del cliente.
- Cita: «an idempotent method is one that yields the same response regardless of how many times a request is sent».
- Diferencia entre Métodos Idempotentes y Seguros: Se distingue entre idempotencia (múltiples llamadas producen el mismo resultado) y seguridad (el método no modifica el recurso). Se ejemplifica que GET es un método seguro.
- Cita: «an idempotent method is one that can be called multiple times without changing responses while a safe method is one that does not change a resource meaning it may read but not write for example a get method is considered to be safe».
- Caching en una Arquitectura RESTful: Se explica la importancia del almacenamiento en caché para reducir el ancho de banda y mejorar la velocidad de recuperación de datos para solicitudes repetidas. Se mencionan los encabezados Cache-Control y Expires como mecanismos para especificar la política de caché.
- Cita: «it’s beneficial for the response to be cached this way less bandwidth is needed and the client may retrieve data faster each rest api contains specific metadata related to the caching of responses for example the headers of cache control and expires specify what responses may be cached by whom and for how long».
- Buenas Prácticas en el Desarrollo de Servicios Web RESTful (Nivel Avanzado): Se reiteran y amplían las buenas prácticas, incluyendo:
- Soporte para transferencia de datos JSON.
- Uso apropiado de códigos de estado.
- Uso de jerarquía en las URIs para representar relaciones entre recursos.
- Uso de métodos HTTP idempotentes.
- Incorporación de mecanismos de caching.
- Implementación de medidas de seguridad.
Conclusión:
Ambos videos proporcionan una visión general valiosa de las APIs REST, comenzando con los conceptos fundamentales en el nivel principiante y profundizando en aspectos más técnicos y mejores prácticas en el nivel avanzado. La comprensión de estos temas, incluyendo las diferencias entre los métodos HTTP, la naturaleza sin estado, los códigos de estado, el diseño de URIs, la idempotencia, el caching y las consideraciones de seguridad, es crucial para cualquier persona que trabaje con o se prepare para entrevistas relacionadas con APIs REST.convert_to_textConvertir en fuenteNotebookLM puede ofrecer respuestas inexactas. Compruébalas.