En la industria del desarrollo de software , las integraciones juegan un papel clave en el diseño de aplicaciones. Una de las principales tecnologías para esto es la API REST . El conocimiento de la API REST es una habilidad importante para todo especialista en tecnología. En este artículo, presentaremos 25 preguntas de la API REST que lo ayudarán a prepararse para una entrevista de trabajo y mejorar sus habilidades. ¡Disfruta leyendo!
En primer lugar, el entrevistador suele dividir las preguntas sobre API REST en teóricas y prácticas. Primero, le harán 2 o 3 preguntas teóricas sobre terminología y métodos de solicitud HTTP, y luego recibirá una tarea práctica sobre cómo redactar una solicitud.
Este artículo contiene preguntas teóricas frecuentes y planeo publicar ejemplos de tareas prácticas relacionadas con la API REST en el próximo artículo. No sabemos de antemano qué preguntas recibirá en una entrevista, pero estoy seguro de que en el proceso de trabajar con nuestra lista de preguntas típicas, probablemente profundizará en el tema y mejorará su conocimiento de la API REST en cualquier caso.
Ahora, pasemos de lo simple a lo complejo, comenzando con la terminología básica y continuando con una sección con preguntas más complejas.
Respuesta: Hay tres términos utilizados cuando se hace referencia a REST que a menudo se consideran lo mismo, pero esto no es del todo cierto. Estos términos son REST, REST API y RESTful API. Ahora habrá una respuesta sobre REST, el término significa Representational State Transfer y es un estilo arquitectónico basado en el protocolo HTTP (Hypertext Transfer Protocol) para desarrollar aplicaciones que tengan un front-end y/o integración con sistemas externos. REST describe las pautas que deben seguir los servicios API que se diseñan. Estos principios garantizan que las solicitudes se transmitan entre el cliente y el servidor mediante HTTP.
Respuesta: Una API es una interfaz de programación que permite que aplicaciones individuales se comuniquen e intercambien datos. Por ejemplo, una aplicación de entrega de alimentos puede utilizar la API de Google Maps para rastrear la ubicación del mensajero y mostrarla en un mapa. Una API REST es una API que sigue los principios de REST y trata todos los datos como recursos, cada uno representado por un identificador uniforme de recursos (URI) único.
Respuesta: Una API RESTful es una API diseñada según las reglas (o también puedes decir “principios”) de REST. En otras palabras, la diferencia entre REST API y RESTful API es terminológica. El primer caso se refiere a un conjunto de reglas REST, y el segundo se refiere a la implementación de una API específica siguiendo reglas REST. El término API RESTful a menudo se reemplaza por API REST o incluso REST simplemente por razones de brevedad. Cuando los analistas de sistemas dibujan flechas etiquetadas como REST en un diagrama de aplicación, se refieren a una API RESTful.
Respuesta: Las solicitudes de API REST deben seguir dos principios básicos: Separación en cliente y servidor: La interacción entre el cliente y el servidor se realiza en forma de solicitudes y respuestas. Sólo los clientes pueden realizar solicitudes y sólo los servidores pueden enviar respuestas para funcionar de forma independiente unos de otros. Protocolo único: La interacción entre el cliente y el servidor debe realizarse mediante un protocolo único. Para REST, este protocolo es HTTP.
Respuesta: Puedes nombrar al menos 4 principios más. Las solicitudes de API REST no almacenan el estado en el servidor y pueden pasar a través de capas de servidores y almacenarse en caché. También puede enviar código ejecutable a los clientes en la respuesta del servidor. Servidor sin estado: el servidor no almacena ninguna información sobre solicitudes/respuestas pasadas. Cada solicitud y respuesta contiene toda la información necesaria para completar la interacción. La comunicación sin estado reduce la carga del servidor, ahorra memoria y mejora el rendimiento. Sistema por capas: son posibles servidores adicionales entre el cliente y el servidor API en forma de capas para realizar diferentes funciones. En un sistema construido sobre principios REST, las capas son modulares y se pueden agregar y eliminar sin afectar las comunicaciones entre el cliente y el servidor. Capacidad de almacenamiento en caché: las respuestas del servidor indican si su recurso se puede almacenar en caché para que los clientes puedan almacenar en caché cualquier recurso para mejorar el rendimiento. Código bajo demanda: el servidor puede enviar código ejecutable a los clientes en su respuesta para su ejecución dentro de la aplicación del cliente.
Respuesta: En REST, cada objeto accesible en el lado del servidor se designa como recurso. Un recurso es un objeto que tiene un tipo, datos asociados, una relación con otros recursos en el servidor y una lista de métodos que se pueden usar para trabajar con él. Por ejemplo, un recurso podría ser un archivo HTML o de texto, un archivo de datos, una imagen o vídeo, o un archivo de código ejecutable. Un recurso se identifica mediante un identificador uniforme de recursos o URI. Los clientes acceden a los recursos utilizando sus URI en solicitudes HTTP.
Respuesta: URI significa Identificador uniforme de recursos. Esta es una cadena que identifica un recurso en el servidor. Cada recurso tiene su propio URI único que, cuando se incluye en una solicitud HTTP, permite a los clientes acceder y realizar acciones en ese recurso. El proceso de hacer referencia a un recurso mediante su URI se denomina "direccionamiento".
Respuesta: CRUD significa "Crear, Leer, Actualizar, Eliminar". Estas son las cuatro acciones principales que se pueden realizar en bases de datos a través de la API REST. Cada acción tiene su propio método de solicitud HTTP:
Respuesta: La carga útil de respuesta HTTP se refiere a los datos de recursos solicitados por el cliente. Esto también se denomina brevemente "carga útil de respuesta HTTP". Estos datos pueden estar en JSON, XML, HTML, imágenes, archivos, etc., dependiendo de lo que proporcione exactamente el servidor.
Respuesta: La mensajería en REST se refiere al intercambio de mensajes entre el cliente y el servidor. La comunicación siempre comienza cuando el cliente realiza una solicitud HTTP al servidor. El servidor procesa esta solicitud y luego envía una respuesta HTTP que indica el estado de la solicitud y los recursos que solicitó el cliente.
Respuesta: En el contexto de REST, el término "agente de mensajes" es un middleware que sirve para pasar mensajes entre varios componentes o sistemas en una aplicación distribuida. El intermediario puede proporcionar intercambio de datos asincrónico, colas de mensajes y procesamiento de mensajes entre varios módulos del sistema.
Los intermediarios de mensajes se pueden utilizar para gestionar operaciones asincrónicas o enviar notificaciones. El intermediario de mensajes no es un elemento REST nativo porque... REST se centra en la comunicación sincrónica entre el cliente y el servidor mediante solicitudes HTTP.
Respuesta: El método de solicitud HTTP especifica la acción deseada que realizará el servidor en el recurso. En REST, existen cuatro métodos principales para realizar solicitudes HTTP desde un cliente a un servidor:
Respuesta: POST sirve para crear un recurso en el servidor, mientras que PUT sirve para reemplazar un recurso en un URI específico por otro recurso. Si usa PUT en un URI que ya tiene un recurso asociado, PUT lo reemplazará. Si no hay ningún recurso en el URI especificado, PUT crea uno. PUT es idempotente, lo que significa que llamarlo varias veces dará como resultado la creación de un solo recurso. Esto sucede porque cada llamada reemplaza un recurso existente (o crea uno nuevo si no hay nada que reemplazar). POST no es idempotente. Si, por ejemplo, llama a POST 10 veces, se crearán 10 recursos diferentes en el servidor, cada uno con su propio URI. Aunque rara vez se utilizan, las respuestas POST se pueden almacenar en caché, pero las respuestas PUT no. Las solicitudes POST generalmente se consideran no almacenables en caché, pero se pueden almacenar en caché cuando contienen información clara sobre la "actualidad" de los datos. Una respuesta más detallada es que la respuesta para una solicitud POST (o PATCH) se puede almacenar en caché si los datos están "nuevos" y el encabezado Content-Location (en-US) está configurado, pero esto rara vez se implementa. Por lo tanto, si es posible, se debe evitar el almacenamiento en caché de POST.
Respuesta: En REST, existen los siguientes componentes básicos de una solicitud HTTP: El método de solicitud que se realizará al recurso (es decir, GET, POST, PUT, DELETE). Un URI que identifica el recurso solicitado en el servidor. Versión HTTP: es decir, qué versión debería estar en la respuesta del servidor. El encabezado de la solicitud HTTP contiene metadatos sobre la solicitud, como el agente de usuario, formatos de archivo aceptados por el cliente, formato del cuerpo de la solicitud, idioma, preferencias de almacenamiento en caché, etc. El cuerpo de una solicitud HTTP, contiene todos los datos asociados con la solicitud. . Esto sólo es necesario si la solicitud es cambiar datos en el servidor utilizando los métodos POST o PUT.
Respuesta: Las respuestas HTTP se envían desde el servidor al cliente. Informan al cliente que la acción solicitada se ha completado (o no) y la entrega de los recursos solicitados. Hay cuatro componentes principales de una respuesta HTTP: Versión HTTP utilizada. Barra de estado con estado de solicitud y código de estado de respuesta HTTP. Encabezado de respuesta HTTP con metadatos sobre la respuesta, incluida la hora, el nombre del servidor, el agente de usuario, los formatos de archivos de recursos devueltos y la información de almacenamiento en caché. Cuerpo de respuesta HTTP que contiene datos sobre el recurso solicitado por el cliente
Respuesta: El servidor devuelve los siguientes códigos de estado de operación cuando la solicitud se procesa correctamente:
Respuesta: El servidor devuelve los siguientes códigos de estado al redirigir una solicitud:
Respuesta: El servidor devuelve los siguientes códigos cuando la solicitud no tiene éxito:
Respuesta: El servidor devuelve los siguientes códigos cuando hay un error en el servidor:
500 Error interno del servidor: la solicitud no se completó debido a un problema inesperado con el servidor.
502 Puerta de enlace incorrecta: la solicitud no se completó debido a una respuesta incorrecta del servidor ascendente.
503 Servicio no disponible: el servidor no pudo procesar la solicitud debido a mantenimiento, sobrecarga u otras perturbaciones temporales.
Puede encontrar una lista de los códigos HTTP más comunes aquí
Responder: GraphQL es un lenguaje de consulta que permite a los clientes consultar solo los datos que necesitan. En GraphQL, el cliente define la estructura y formato de los datos que quiere recibir, y el servidor los devuelve según esa solicitud. La diferencia clave es que REST tiene un formato fijo de solicitud y respuesta para cada recurso, mientras que GraphQL permite a los clientes definir su solicitud y obtener solo la información que necesitan, lo que lo hace más eficiente y flexible de usar.
Respuesta: REST y SOAP (Protocolo simple de acceso a objetos) son dos enfoques para crear API. Hay 3 diferencias principales entre ellos:
Responder: JavaScript asíncrono o AJAX es un conjunto de tecnologías de desarrollo web utilizadas en aplicaciones web. Básicamente, AJAX permite que una página web realice solicitudes al servidor y actualice la interfaz de la página sin tener que actualizar toda la página.
Un cliente AJAX puede utilizar la API REST en sus solicitudes, pero AJAX no tiene por qué funcionar únicamente con la API REST. Las API REST pueden comunicarse con cualquier cliente, ya sea que use AJAX o no.
A diferencia de REST, que utiliza solicitudes y respuestas HTTP para intercambiar mensajes, AJAX envía sus solicitudes al servidor utilizando el objeto XMLHttpRequest integrado en JavaScript. Las respuestas del servidor se ejecutan mediante el código JavaScript de la página para cambiar su contenido.
Respuesta: El enfoque Contract First para el desarrollo de API REST es una metodología en la que la especificación y el contrato de API se crean y definen antes de que comience el desarrollo real. Este contrato sirve como un documento importante que define cómo los clientes pueden interactuar con la API y qué resultados esperados se obtendrán de varias solicitudes.
Respuesta: Se pueden mencionar las siguientes ventajas del enfoque Contract First:
Respuesta: El enfoque Code First para el desarrollo de API REST es una metodología en la que primero se desarrolla la funcionalidad API y luego se genera automáticamente una especificación API basada en esa funcionalidad. El sello distintivo del enfoque Code First es que los desarrolladores se centran en escribir la lógica de la API y utilizan herramientas que les permiten crear automáticamente documentación y especificaciones basadas en esa lógica.
En general, ambos enfoques, Code First y Contract First, se pueden combinar dentro de un mismo proyecto de desarrollo de API. En este caso, se utiliza Code First para la creación rápida de prototipos, seguido de Contract First para formalizar el contrato.
Espero que este artículo le resulte útil a la hora de prepararse para una entrevista de trabajo o de actualizar sus conocimientos sobre la API REST.