Saltar al contenido

Preguntas más importantes de la entrevista GraphQL con respuestas (2021)

octubre 19, 2021

Una lista de preguntas frecuentes Preguntas de la entrevista GraphQL y las respuestas se dan a continuación.

1) ¿Qué es GraphQL?

GraphQL es un nuevo estándar API diseñado y desarrollado por Facebook. Es una tecnología del lado del servidor de código abierto que ahora es mantenida por una gran comunidad de empresas e individuos en todo el mundo. También es un motor de ejecución que funciona como un lenguaje de consulta de datos y se utiliza para obtener datos declarativos.

Lea más información sobre GraphQL: https://www.javatpoint.com/graphql


2) ¿Cuál fue la razón detrás del desarrollo de GraphQL?

GraphQL fue desarrollado inicialmente por Facebook como una solución interna para sus aplicaciones móviles. Fue diseñado para optimizar las llamadas a la API RESTful y proporcionar una alternativa flexible, robusta y eficiente a REST. No reemplaza a REST. Es una alternativa a escribir API usando REST.

Después de su lanzamiento, se ha vuelto frecuente entre los desarrolladores y también es una solución popular para crear servicios web junto con REST.


3) ¿Cuáles son las principales empresas que utilizan GraphQL?

Hay muchas organizaciones importantes como Facebook, Github, Pinterest, Intuit, coursera, shopify, dailymotion, yelp, etc. que utilizan GraphQL. En realidad, GraphQL fue diseñado y desarrollado por el propio Facebook.


4) ¿Cómo GraphQL utiliza el proceso de carga de datos?

Cuando los usuarios obtienen los datos en GraphQL, recupera solo la cantidad mínima de datos que requiere el cliente. Incluso si el modelo de objetos contiene muchos campos, el cliente solo puede solicitar los campos obligatorios.


5) ¿GraphQL es una tecnología de base de datos?

No. GraphQL no es una tecnología de base de datos. La gente confunde GraphQL con una tecnología de base de datos, pero esto no es cierto. GraphQL es un lenguaje de manipulación y consulta de datos para API, no bases de datos. También es un tiempo de ejecución del lado del servidor para ejecutar consultas cuando define un sistema de tipos para sus datos. A diferencia de las API REST, un servidor GraphQL proporciona solo un punto final y responde con los datos precisos que solicitó un cliente.

Puede decir que GraphQL es independiente de la base de datos y se puede usar con cualquier base de datos. También se puede utilizar sin ninguna base de datos.


6) ¿GraphQL solo es adecuado para desarrolladores de React / JavaScript?

No. No es correcto decir que GraphQL es solo para desarrolladores de React o JavaScript. GraphQL es un lenguaje de manipulación y consulta de datos multiplataforma, de código abierto para la tecnología API, por lo que se puede utilizar en cualquier escenario donde se requiera una tecnología API.

En el backend, los servidores GraphQL están disponibles para múltiples lenguajes como Java, Python, .NET, C #, PHP, R, Haskell, JavaScript, Perl, Ruby, Scala, Go, Elixir, Erlang y Clojure, etc. Entonces, se puede implementar con cualquier lenguaje de programación y marco para construir un servidor web.


7) ¿Cuáles son las razones detrás del uso de GraphQL cuando ya teníamos una API llamada REST?

Esta pregunta a menudo viene a la mente de cuáles son las razones detrás del uso de GraphQL cuando ya teníamos una API llamada REST. Sí, ya teníamos una API llamada REST para la comunicación de datos, que sigue un enfoque claro y bien estructurado orientado a los recursos. También proporciona algunas ideas geniales, como servidores sin estado, acceso estructurado a los recursos, etc. Pero REST no es tan flexible para hacer frente a los requisitos rápidamente cambiantes de los clientes. En ese caso, cuando los datos se vuelven más complejos, las rutas se hacen más largas. A veces, es difícil obtener los datos con una sola solicitud. Es por eso que Facebook da un paso para desarrollar una nueva tecnología API llamada GraphQL para hacer frente a las limitaciones de REST.


8) ¿Cómo facilita GraphQL a los desarrolladores la elección de protocolos distintos de HTTP para implementar su servidor?

La API GraphQL generalmente se opera a través de HTTP, y es una tecnología independiente de la capa de transporte, por lo que puede elegir protocolos distintos de HTTP para implementar su servidor.


9) ¿Qué es la autenticación y autorización en GraphQL?

Autenticación y autorización La autorización son los procesos utilizados en los servicios. A veces, las personas se confunden en estos dos términos e intercambian sus definiciones entre sí.

Autenticación: La autenticación es un proceso que se utiliza para reclamar una identidad. La autenticación se realiza cuando desea iniciar sesión en un servicio con un nombre de usuario y contraseña. Aquí tienes que autenticarte. En GraphQL, la autenticación se puede implementar con patrones comunes como OAuth. OAuth es un protocolo abierto que se utiliza para permitir AuthorizationAuthorization seguro en un método simple y estándar desde aplicaciones web, móviles y de escritorio.

Autorización: Por otro lado, AuthorizationAuthorization es un proceso que se utiliza para otorgar reglas de permisos que especifican los derechos de acceso de usuarios individuales y grupos de usuarios a ciertas partes del sistema. Para la implementación de la autorización en GraphQL, se recomienda delegar cualquier lógica de acceso a datos a la capa de lógica empresarial y no manejarla directamente.


10) ¿Cómo manejar errores en GraphQL?

Es fácil ver el error en GraphQL. Se supone que una consulta GraphQL exitosa devuelve un objeto JSON con un campo raíz llamado «datos». Si su consulta de solicitud falla o falla parcialmente, verá un segundo campo raíz llamado «errores» en la respuesta. Vea el siguiente ejemplo

Ejemplo:

Nota: A veces, la consulta de solicitud falla o falla parcialmente si el usuario que solicita los datos no tiene el permiso de acceso correcto.


11) ¿Cómo hacer el almacenamiento en caché del lado del servidor en GraphQL? ¿En qué se diferencia de REST?

La mayor preocupación con la tecnología GraphQL es que es difícil mantener la caché del lado del servidor en comparación con REST. En la API REST, podemos almacenar en caché fácilmente los datos para cada punto final. Esto se debe a que la estructura de los datos no cambia. Por otro lado, en GraphQL API, no está claro qué solicitará el cliente a continuación, por lo que no importa poner una capa de almacenamiento en caché justo detrás de la API. Es por eso que es difícil hacer el almacenamiento en caché del lado del servidor en GraphQL.


12) ¿Qué tipo de respuesta obtiene después de una consulta GraphQL?

En GraphQL, cuando un cliente solicita una consulta, el servidor devuelve la respuesta en formato JSON. La respuesta devuelta por el servidor se basa en la consulta que el cliente utiliza para la solicitud.


13) ¿Qué es la búsqueda excesiva en GraphQL?

La recuperación excesiva es una respuesta en la que el cliente obtiene demasiados datos o datos adicionales para una solicitud de API. En la búsqueda excesiva, tiene muchos datos adicionales en la respuesta que no usa. La recuperación excesiva aumenta innecesariamente el tamaño de la carga útil.


14) ¿Qué es la búsqueda insuficiente?

La búsqueda insuficiente es una respuesta en la que el cliente no obtiene suficientes datos. La respuesta de captura insuficiente no tiene suficientes datos con una llamada a un punto final, por lo que debe llamar a un segundo punto final para cumplir con su solicitud o varias llamadas a la API para obtener los datos completos.


15) ¿Cómo soluciona GraphQL los problemas de obtención excesiva o de obtención insuficiente?

Tanto la obtención excesiva como la obtención insuficiente son problemas de rendimiento que se pueden resolver utilizando GraphQL. No verá estos problemas si tiene exactamente los puntos finales correctos para proporcionar a sus productos exactamente los datos correctos. Estos problemas ocurren cuando tiene que mantener múltiples puntos finales para obtener los datos exactos y correctos. Ha aumentado la carga de datos, lo que finalmente resulta en un problema de rendimiento.

GraphQL resuelve este problema porque le facilita solicitar los datos específicos que desea del servidor. Aquí, puede especificar lo que necesita en una sola solicitud y obtener el resultado exacto que necesita en una sola respuesta del servidor.


16) ¿Cuáles son las ventajas más significativas de usar GraphQL sobre REST?

Una lista de las ventajas más significativas de usar GraphQL sobre REST:

  • Solo hay un punto final en GraphQL, pero REST tiene varios puntos finales. Es por eso que GraphQL es más rentable que REST. No es necesario que utilice sus recursos para varios puntos finales.
  • En la API REST, debe usar varias solicitudes para recuperar un conjunto de datos complejo, pero en GraphQL, puede ejecutar una consulta compleja fácilmente en una sola solicitud.
  • Puede cambiar el formato de los datos de la solicitud en GraphQL, pero no es posible hacer lo mismo en REST.
  • La velocidad de desarrollo en GraphQL es más rápida que en REST.
  • GraphQL proporciona una alta coherencia en todas las plataformas, mientras que en REST, es difícil conseguir coherencia en todas las plataformas.
  • GraphQL no admite un sistema de almacenamiento en caché automático, mientras que REST utiliza el almacenamiento en caché automáticamente.

17) ¿REST también es un lenguaje de consulta como GraphQL?

No. REST no es un lenguaje de consulta como GraphQL. Es una API de servicio web.


18) ¿Es cierto que podemos usar GraphQl solo con la base de datos SQL?

No. GraphQL es un lenguaje de consulta para API que se puede utilizar con cualquier base de datos SQL o NoSQL.


19) ¿Qué es SDL y para qué sirve?

SDL es un acrónimo que significa Lenguaje de definición de esquema. Se utiliza para escribir esquemas. SDL es el lenguaje que se utiliza para escribir esquemas GraphQL.


20) ¿Se puede usar la API GraphQL para manejar el uso sin conexión?

GraphQL es un lenguaje de consulta para API web que está diseñado solo para funcionar en línea. Las capacidades de almacenamiento en caché de algunas bibliotecas GraphQL como Relay y Apollo se pueden usar en algunos casos, pero aún no existe ninguna solución adecuada sin conexión desarrollada o disponible.


21) ¿Qué sabes sobre GraphiQL?

GraphiQL se utiliza para proporcionar una representación de la interfaz de usuario para GraphQL. Es un IDE en el navegador que se utiliza para explorar GraphQL y facilitar el uso de GraphQl. GraphQL admite el resaltado de errores en tiempo real, por lo que puede ver y manejar los errores fácilmente.


22) ¿GraphQL admite el almacenamiento en caché del lado del servidor como REST?

No. GraphQL no admite el almacenamiento en caché del lado del servidor como REST.


23) ¿Cuáles son las principales operaciones que soporta GraphQL?

GraphQL admite tres tipos de operaciones: consulta, mutación y suscripción. La consulta se usa para la solicitud y es una operación de lectura, la mutación se usa para operaciones de escritura y la suscripción se usa para escuchar cualquier cambio de datos. El servidor envía un mensaje de notificación al cliente después de cualquier cambio de datos, si el cliente está suscrito a ese evento.


24) ¿Se pueden utilizar consultas para modificar datos?

Si. Las consultas se pueden utilizar para modificar datos del lado del servidor. Pero de acuerdo con el método convencional, es la mejor práctica utilizar la mutación para cualquier operación de escritura.


25) ¿Qué es Apollo en GraphQL?

Apollo es una plataforma para la implementación de GraphQL. Como sabemos que GraphQL es un lenguaje de consulta, para poder usar este lenguaje de consulta fácilmente, necesitamos una plataforma, Apollo proporciona esa plataforma.

Apollo proporciona dos bibliotecas de código abierto para crear cliente y servidor. Aquí, el cliente se usa para obtener datos de un servidor GraphQL y el servidor se usa para crear una API para el cliente GraphQL.


26) ¿Qué sabes de Mutation en GraphQL?

La mutación es una de las operaciones más importantes en GraphQL. Se utiliza para la operación de escritura cuando desea agregar borrar y editar datos.


27) ¿Qué es la suscripción en GraphQL?

En GraphQL, la suscripción se usa para escuchar cualquier cambio de datos. El servidor envía un mensaje de notificación al cliente después de cualquier cambio de datos, si el cliente está suscrito a ese evento.


28) ¿Qué quiere decir una consulta en GraphQL?

Se utiliza una consulta GraphQL para leer datos. Es similar a la solicitud GET que usamos en las API REST. Las consultas GraphQL se utilizan para recuperar datos del servidor GraphQL.


29) ¿Qué sabes de Fields en GraphQL?

Las claves de un objeto que se utilizan en la consulta GraphQL se conocen como campos.

Por ejemplo:

En la consulta anterior, ‘nombre’ y ‘salario’ son campos.


30) ¿Cuál es el uso de tipos de objetos en GraphQL?

Los recursos a los que accede un cliente se denominan Objetos. Los objetos pueden contener una lista de campos GraphQL.


31) ¿Cuál es el uso de una interfaz en GraphQL?

En GraphQL, una interfaz es …

close