40 preguntas y respuestas frecuentes de la entrevista API REST [2023]

Una API significa Interfaz de programación de aplicaciones. Sirve como puerta de enlace para que las aplicaciones accedan a algunos recursos de otras aplicaciones.

La ventaja de usar una API es proporcionar acceso a aplicaciones de terceros para que no puedan acceder a todos los datos de su aplicación. Solo pueden acceder a los datos que expone a través de su API.

La aplicación o un usuario que quiere acceder a los datos se conoce como cliente, y la aplicación que sirve los datos se conoce como servidor.

Las API se utilizan ampliamente hoy en día en todas las arquitecturas de software. Si está solicitando un rol de ingeniería de redes, back-end, full-stack o front-end, entonces se le harán muchas preguntas sobre las API.

Dicho esto, exploremos algunas de las preguntas de entrevista más frecuentes sobre las API REST.

Tabla de contenido

¿Qué es REST?

Respuesta: REST es un diseño arquitectónico que define algunas restricciones en el funcionamiento de las API. Las API que siguen los principios de REST se conocen como API RESTful. REST significa Transferencia de Estado Representacional.

No es un protocolo ni un estándar; en cambio, es una arquitectura que se puede usar para implementar API de varias maneras.

Brinda alta flexibilidad y libertad a los desarrolladores, y es por eso que se usa ampliamente para desarrollar API. Estos son algunos de los principios de una arquitectura REST:

  • Separación de cliente y servidor: en una API RESTful, el cliente no debe afectar al servidor de ninguna otra manera que no sea la solicitud de datos a través de un URI (identificador uniforme de recursos). De la misma manera, el servidor no debe modificar el contenido del cliente de ninguna manera.
  • Apatridia: cuando se realizan dos solicitudes separadas, no se conocen entre sí. En otras palabras, las solicitudes no tienen estado y no mantienen un estado. Si se cumple una solicitud, simplemente termina. Cada solicitud está aislada de otras solicitudes.
  • Arquitectura en capas: el cliente o el servidor no saben si la solicitud se realiza directamente al origen o a una aplicación intermediaria. Solo les importa la respuesta a la solicitud.
  • Almacenamiento en caché: los datos o la respuesta se pueden almacenar en caché tanto en el lado del cliente como en el del servidor para mejorar el rendimiento y la escalabilidad. Si hay solicitudes frecuentes de un recurso en particular, la respuesta a esa solicitud se puede almacenar en caché y usar cuando sea necesario.

¿Cuáles son algunas características clave de REST?

Respuesta: Las características o características clave de REST son:

  • Flexibilidad: puede pasar de un servidor a otro y no cambiará nada porque la API enviará la misma respuesta para una solicitud en particular. Además, puede agregar tantos puntos finales como desee para diferentes tipos de datos.
  • Escalabilidad: el almacenamiento en caché mejora la escalabilidad debido a que las respuestas se guardan para su uso posterior. Disminuye la carga en el servidor y también reduce la latencia.
  • Autorización: con la ayuda del encabezado de autorización, puede especificar las credenciales que el servidor puede usar para autorizar la solicitud.
  • Sin estado: esta es la característica más importante de REST porque evita que las solicitudes sepan qué sucede con otras solicitudes. Las solicitudes se aíslan y finalizan tan pronto como se cumplen.

¿Qué son los recursos en una arquitectura REST?

Respuesta: Los recursos son entidades en las que se realizan diferentes operaciones, como recuperar, actualizar o eliminar. Son los componentes básicos de la arquitectura REST.

Por ejemplo, si considera una tienda de comercio electrónico en línea, los productos, los usuarios y los metadatos se consideran recursos porque se pueden operar. Los recursos se pueden transferir a otra aplicación a través de la API.

Mencione algunas ventajas y desventajas de una API REST.

Respuesta: Las ventajas de las API REST son las siguientes:

  • Es simple de implementar.
  • Los recursos se pueden manejar fácilmente.
  • Es escalable debido a la arquitectura cliente-servidor.
  • Admite múltiples tipos de medios de transferencia de datos, como XML y JSON.

Sus desventajas son:

  • No puede mantener un estado entre solicitudes.
  • La verdadera fuente de origen del recurso no se puede conocer debido a la arquitectura en capas.
  • No es bueno para consultas o solicitudes complejas.

Definir plantilla REST.

Respuesta: Una plantilla REST es una utilidad o un cliente a través del cual puede acceder a las API REST en el marco Spring. Básicamente, oculta el código repetitivo que puede tener que escribir para solicitar un recurso de una API REST.

¿Qué es RESTful?

Respuesta: Las API o servicios RESTful son interfaces que implementan el estilo arquitectónico REST (Representational State Transfer) y funcionan con protocolos como HTTP.

¿Qué son los servicios web RESTful?

Respuesta: Los servicios web RESTful están diseñados para funcionar mejor en la Web. La transferencia de estado representacional (REST) ​​es un estilo arquitectónico que especifica restricciones, como la interfaz uniforme, la arquitectura en capas y la falta de estado, si se aplica a un servicio web, induce propiedades deseables, como rendimiento y escalabilidad, que permiten que los servicios funcionen mejor en La web.

¿Cómo puede probar los servicios web RESTful?

Respuesta: Para probar un servicio web RESTful, puede usar un cliente REST como Postman o Thunder Client y consultar el servicio web que desea probar. Luego, cuando obtenga una respuesta, comprenda la respuesta; esa es la parte clave.

Si desea probar una API compleja con muchos puntos finales, es posible que deba dividir las pruebas y realizar pruebas unitarias, pruebas de integración, pruebas de rendimiento y pruebas de un extremo a otro.

Mencione algunas características de los servicios web RESTful.

Respuesta: Algunas de las características clave de los servicios web RESTful son:

  • Soporte para múltiples tipos de medios como JSON y XML.
  • Escalabilidad
  • Aislamiento de cliente y servidor
  • Flexibilidad

Definir clases de recursos raíz RESTful.

Respuesta: Las clases de recursos raíz son «objetos Java simples y antiguos» (POJO) que están anotados con @Path o tienen al menos un método anotado con @Path o un designador de método de solicitud, como @GET, @POST, @PUT o @BORRAR.

¿Qué es URI?

Respuesta: URI significa Identificador uniforme de recursos. Es una secuencia de caracteres utilizada para localizar o identificar recursos de una API o un servicio. Utiliza el nombre o la ubicación del recurso para identificarlo, pero no se basa en un método o técnica en particular.

¿Qué es la apatridia en REST?

Respuesta: La apatridia se refiere a una restricción aplicada a una API en la que dos solicitudes no pueden saber qué sucede entre sí. En otras palabras, no se mantiene el estado de las solicitudes. Si se cumple la solicitud, simplemente finaliza después de obtener una respuesta.

¿Qué es JAX-RS?

Respuesta: JAX-RS es una API de Java que le permite desarrollar aplicaciones en Java que utilizan la arquitectura REST. Esta API facilita el desarrollo de aplicaciones REST en Java.

¿Cuáles son las anotaciones clave en la API de JAX-RS?

Respuesta: Los desarrolladores utilizan las anotaciones en JAX-RS para decorar las clases de Java con el fin de definir recursos y métodos que se pueden realizar en esos recursos. Algunas anotaciones clave de la API JAX-RS son:

  • @GET: Se utiliza para realizar solicitudes GET en HTTP.
  • @POST: Se utiliza para realizar solicitudes POST en HTTP.
  • @Path: Se refiere a la ruta relativa de una clase Java.
  • @QueryParam: Hace referencia a los parámetros de consulta de la URI o URL.

¿Cuáles son algunas características clave de la API JAX-RS?

Respuesta: Las características de JAX-RS son:

  • Almacenamiento en caché del lado del cliente
  • Almacenamiento en caché del lado del servidor
  • Personalización de la cadena de consulta
  • Anotaciones en tiempo de ejecución

¿Cómo se pueden configurar las aplicaciones JAX-RS?

Respuesta: una aplicación JAX-RS consta de al menos una clase de recurso empaquetada dentro de un archivo WAR. El URI base desde el que los recursos de una aplicación responden a las solicitudes se puede establecer de dos maneras:

  • Uso de la anotación @ApplicationPath en una subclase de javax.ws.rs.core.Application empaquetada dentro de WAR
  • Uso de la etiqueta de mapeo de servlet dentro del descriptor de implementación web.xml de WAR

¿Qué son JAX-WS y JAX-RS?

Respuesta: JAX-WS es una API de servicios web XML de Jakarta que se utiliza para desarrollar API mediante el Protocolo simple de acceso a objetos (SOAP), un protocolo de mensajería basado en XML.

Por otro lado, JAX-RS es una API de Java utilizada para crear servicios web utilizando la arquitectura REST.

¿Qué son los códigos de estado HTTP?

Respuesta: Los códigos de estado no son más que una forma de comunicar el estado de la respuesta enviada por el servidor al cliente. Están presentes en los encabezados de respuesta enviados por el servidor.

El cliente puede averiguar si la solicitud falló o se cumplió o si hay algún problema con la respuesta utilizando los códigos de estado.

Aquí hay algunos códigos de estado comunes de HTTP: –

  • 200 – Significa la palabra clave “OK”. Significa que la solicitud se ha cumplido y la respuesta está bien.
  • 404 – Significa “No encontrado”. Esto significa que un recurso no está presente en el servidor o que no existe un punto final.
  • 500: significa «Error interno del servidor». Esto suele ocurrir cuando el servidor no puede generar la respuesta correcta o hay un error que no se lanza explícitamente.
  • 503 – Significa “Servicio no disponible”. Significa que actualmente, el servidor no puede procesar ninguna solicitud, probablemente porque está inactivo o no funciona debido a una sobrecarga de solicitudes. También puede ocurrir cuando el servidor está en mantenimiento.

¿Qué son los métodos HTTP?

Respuesta: Los métodos HTTP se utilizan para realizar cierto tipo de acción en un recurso particular de una API. Por ejemplo, si desea obtener una lista de películas de una API de colección de películas, puede usar el método GET proporcionado por HTTP. Si desea actualizar los datos, puede utilizar el método POST proporcionado por HTTP.

Los métodos HTTP utilizados con frecuencia son los siguientes:

  • GET: las solicitudes que utilizan GET solo deben recuperar datos.
  • POST: Actualiza el recurso enviando un recurso recién actualizado al servidor.
  • DELETE: Elimina el recurso especificado.
  • PATCH: Modifica parcialmente el recurso.

¿Cómo funciona la autenticación básica HTTP?

Respuesta: La autenticación es un proceso para verificar la autenticidad de un cliente para mantener la seguridad de los datos. En HTTP, la autenticación funciona a través de un encabezado de autorización, que envía el cliente.

El encabezado de autorización consiste en el nombre de usuario/identificación y la contraseña del cliente, que luego el servidor verifica y otorga acceso.

Una cosa importante a tener en cuenta aquí es que cuando se usa la autenticación HTTP, el canal a través del cual pasan las credenciales debe estar encriptado y seguro.

Puede proteger el canal utilizando la capa SSL, que está integrada en HTTPS. Por lo tanto, se recomienda usar HTTPS en lugar de HTTP simple cuando se trata de credenciales.

¿Cuáles son los componentes principales de la solicitud HTTP?

Respuesta: una solicitud HTTP consta de los siguientes componentes:

  • Línea de solicitud: es la primera línea de cualquier solicitud y consta del método HTTP, la ruta o punto final y el número de versión HTTP.
  • Encabezados: los encabezados HTTP se utilizan para proporcionar metadatos de la solicitud.
  • Cuerpo (opcional): este componente solo está presente para algunos de los métodos de solicitud. No es necesario para las solicitudes GET, pero sí para las solicitudes POST. Es el mensaje real de la solicitud.

¿Cuáles son los componentes básicos de la respuesta HTTP?

Respuesta: una respuesta HTTP consta de los siguientes componentes:

  • Estado: se refiere al código de estado HTTP que envía el servidor.
  • Encabezados: al igual que las solicitudes, las respuestas también tienen sus respectivos encabezados, que brindan información útil sobre la respuesta.
  • Mensaje: Estos son los datos reales que envía el servidor al cliente para solicitar un recurso en particular.

¿Cuál es la diferencia entre REST y AJAX?

Respuesta: AJAX es un cliente a través del cual puede acceder a las API RESTful. Se utiliza para enviar solicitudes asincrónicas mediante JavaScript.

REST, o Transferencia de estado representacional, es una arquitectura que se puede implementar para crear API RESTful. En resumen, para enviar solicitudes HTTP, puede usar AJAX que sirve como cliente, pero si desea implementar API RESTful, debe usar la arquitectura REST.

¿Cuál es la diferencia entre SOAP y REST?

Respuesta: La transferencia de estado representacional, o REST, es una arquitectura con restricciones mínimas para crear API. SOAP, o Simple Object Access Protocol, es un protocolo con requisitos estrictos para implementar una API.

REST es más flexible y fácil de usar que SOAP. La mensajería basada en XML se usa en SOAP, mientras que en REST, puede usar muchos tipos de transferencia de datos, como JSON, XML, etc. En comparación con SOAP, REST es más liviano y rápido.

Los servicios web SOAP tienen seguridad incorporada, lo cual es una ventaja de usar SOAP sobre REST, pero las características adicionales también lo hacen complejo y pesado de usar.

¿Cuál es la diferencia entre PUT y POST?

Respuesta: POST es un método de solicitud HTTP que envía algunos datos al servidor. Si realiza varias solicitudes POST para un recurso en particular, puede haber efectos secundarios en sus datos. Por ejemplo, si desea agregar un artículo a una colección, si realiza varias solicitudes POST, se agregarán varios artículos a la colección, lo que generará artículos redundantes.

PUT es un método de solicitud HTTP que envía datos al servidor para un recurso en particular, pero solo actualiza los datos una vez. Si envía varias solicitudes PUT para un recurso en particular, no se producirán efectos secundarios y los datos se agregarán solo una vez. En PUT, si el recurso no existe, creará uno nuevo, y si existe, actualizará el existente.

PUT es idempotente, mientras que POST no lo es.

¿Qué es una carga útil?

Respuesta: Una carga útil en una API REST es simplemente el cuerpo de la solicitud enviada desde el cliente al servidor. Son los datos que desea enviar al servidor y obtener una respuesta.

¿Cuál es el tamaño máximo de la carga útil que se puede enviar en los métodos de publicación?

Respuesta: No existe un límite predeterminado establecido por el propio protocolo HTTP. El límite puede depender del límite máximo del cliente o del servidor, cualquiera que sea el mínimo.

Al crear URI, ¿cuáles son las mejores prácticas que deben seguirse?

Respuesta: Algunos de los puntos clave que debe tener en cuenta al diseñar URI son:

  • Evite el uso de extensiones de archivo
  • Sea coherente con todos los URI
  • Divida los URI en dominios y subdominios para diferentes conjuntos de recursos
  • Debe usar guiones o guiones bajos para separar palabras en oraciones incrustadas en URI.
  • Debe usar la barra inclinada para indicar una jerarquía de recursos
  • Codificar un URI utilizando la codificación adecuada
  • Intente hacer que el URI sea legible por humanos

¿Qué son los métodos idempotentes?

Respuesta: Los métodos HTTP idempotentes tienen el mismo efecto en el servidor a pesar de enviar varias solicitudes idénticas. Por ejemplo, si envía varias solicitudes DELETE idénticas para un recurso en particular, el recurso no cambiará en cada solicitud; se actualizará como si solo se hubiera enviado una solicitud.

Algunos de los métodos idempotentes incluyen:

  • PONER
  • BORRAR
  • CONSEGUIR
  • CABEZA
  • OPCIONES

¿Qué es el cartero?

Respuesta: Postman es una herramienta de desarrollo de API para desarrollar, modificar y probar API. Proporciona muchas funciones para crear y probar API rápidamente sin necesidad de configurar un cliente.

Respuesta: El encabezado Cache-Control consta de instrucciones o directivas para configurar el almacenamiento en caché en navegadores y servidores. Le dice al navegador o al servidor qué almacenar en caché y cuánto tiempo debe almacenarse en caché antes de solicitarlo a través de la solicitud de red.

El encabezado Cache-Control incluye las siguientes directivas:-

  • max-edad
  • sin caché
  • privado
  • público
  • sin tienda
  • inmutable

Definir mensajería en servicios web RESTful.

Respuesta: La mensajería en los servicios web RESTful hace referencia al cliente que envía una solicitud HTTP al servidor, a la que el servidor responde con una respuesta HTTP. Esta comunicación entre el cliente y el servidor se denomina mensajería.

¿Cuál es la diferencia entre la arquitectura monolítica, SOA y de microservicios?

Respuesta: En una arquitectura monolítica, todo se gestiona en un solo lugar. El lado del cliente, el servidor y la base de datos se administran desde un solo lugar. Por eso se le conoce como monolítico porque la palabra “monolito” se refiere a un solo bloque o piedra.

SOA significa Arquitectura Orientada a Servicios. En esta arquitectura, diferentes aspectos de la aplicación son gestionados por diferentes servicios, que también son software. Por lo tanto, es una combinación de múltiples módulos de software de servicio. La integración es la parte clave de esta arquitectura.

La arquitectura de microservicios es similar a SOA, pero a diferencia de SOA, tiene múltiples programas de software autónomos que se comunican entre sí mediante API. A diferencia de la arquitectura monolítica, aquí todo es autónomo y, hasta cierto punto, independiente.

¿Cómo funciona la arquitectura de microservicios?

Respuesta: En una arquitectura de microservicios, las aplicaciones se dividen en subunidades más pequeñas que son independientes entre sí y funcionan por sí mismas, pero se comunican entre sí a través de un conjunto bien definido de API.

Algunos beneficios de la arquitectura de microservicios incluyen agilidad, flexibilidad, escalabilidad, tecnologías independientes, servicios reutilizables y fácil implementación.

¿Qué es CRUD?

Respuesta: CRUD significa Crear, Leer, Actualizar, Eliminar. Estas son las operaciones que se pueden realizar en un recurso en particular. La API que admite todas estas operaciones se conoce como API CRUD. Estas son las operaciones más básicas que puede realizar una API en un recurso.

¿Qué es el almacenamiento en caché?

Respuesta: El almacenamiento en caché es una técnica de almacenamiento de una respuesta o una solicitud en el cliente o en el servidor para volver a utilizarla más tarde.

Las respuestas generalmente se almacenan en caché en el cliente porque si el cliente realiza la misma solicitud varias veces en un intervalo de tiempo corto, entonces no tiene sentido solicitar la respuesta nuevamente a través de la red y desperdiciar el ancho de banda.

¿Cuál es el uso de @RequestMapping?

Respuesta: Es una anotación en Spring Framework que se utiliza para asignar solicitudes web a clases de controlador específicas y/o métodos de controlador.

¿Qué hace @PathVariable?

Respuesta: La anotación @PathVariable en el marco Spring se usa para extraer el valor de las variables de plantilla y asignar su valor a una variable de método.

Defina HttpMessageConverter.

Respuesta: cuando una solicitud HTTP (o partes de ella) debe convertirse en un tipo necesario como argumento para un método de controlador o cuando el valor devuelto por un método de controlador debe convertirse de alguna manera para crear una respuesta HTTP, HTTP Se utilizan convertidores de mensajes.

Respuesta: Algunas herramientas que pueden ayudarlo en las pruebas de API son las siguientes:

  • Cartero
  • Está seguro
  • Descanso sostenido
  • Katalon
  • ReadyAPI
  • Apigeo

Ultimas palabras

Hoy en día, las API se han vuelto extremadamente populares debido a la llegada de Internet. Otra razón por la que las API REST son populares es que son fáciles de desarrollar y usar.

Si se está preparando para una entrevista, tenga en cuenta las preguntas anteriores sobre las API REST que podrían formularse en su entrevista.

A continuación, puede verificar cómo raspar un sitio web usando la API de raspado web de kirukiru.es.