Comparación entre API GraphQL y API REST

 

 

 

Las principales diferencias entre REST y GraphQL y cuándo es mejor utilizar uno u otro

 

Dado que REST es un enfoque tan popular para crear API, y mucho más extendido que GraphQL , es justo asumir que está familiarizado con él, así que veamos las diferencias entre GraphQL y REST.

El descanso es un concepto

REST es un estándar de arquitectura de facto, pero en realidad no tiene especificaciones y cuenta con toneladas de definiciones no oficiales. GraphQL tiene un borrador de especificaciones y es un lenguaje de consulta en lugar de una arquitectura, con un conjunto bien definido de herramientas creadas a su alrededor (y un ecosistema floreciente).

Mientras que REST se construye sobre una arquitectura existente, que en los escenarios más comunes es HTTP , GraphQL, por otro lado, construye su propio conjunto de convenciones, lo que puede ser un punto a favor o no, ya que REST se beneficia de forma gratuita al almacenar en caché en la capa HTTP.

Un único punto final

GraphQL tiene un único punto final, donde se envían todas las consultas. Con un enfoque REST, se crean varios puntos finales y se utilizan verbos HTTP para distinguir entre acciones de lectura ( GET) y acciones de escritura ( POST, PUT, DELETE). GraphQL no utiliza verbos HTTP para determinar el tipo de solicitud.

Adaptado a tus necesidades

Con REST, generalmente no puedes elegir lo que el servidor te devuelve, a menos que el servidor implemente respuestas parciales mediante conjuntos de campos dispersos y los clientes utilicen esa función. El encargado del mantenimiento de la API no puede aplicar dicho filtrado.

La API normalmente le devolverá mucha más información de la que necesita, a menos que usted también controle el servidor API y adapte sus respuestas para cada solicitud diferente.

Con GraphQL, usted solicita explícitamente solo la información que necesita, no “opta por no recibir” la respuesta completa predeterminada, pero es obligatorio elegir los campos que desea.

Esto ayuda a ahorrar recursos en el servidor, ya que probablemente necesitará menos procesamiento, y también ahorros en la red, ya que la carga a transferir es menor.

Una excelente manera de visualizar esto es un ejemplo de un punto final de Pizza (soy italiano, un ejemplo de Pizza es perfecto).

 

Si llamas GET /pizza/margherita, te darán una pizza margarita. Si llamas GET /pizza/napoli, te darán una pizza napolitana. Aviation Questions and Answers

Si tienes 30 sabores diferentes, tendrás 30 puntos finales (a menos que pases el nombre de la pizza como parámetro a GET /pizza, por ejemplo)

Pero tal vez quieras un tipo específico de pizza, pero sin un ingrediente que no te guste. Es fácil preguntarle al camarero, pero es un poco difícil expresarlo a un punto final REST.

Un punto final GraphQL le permitiría llamar a /pizza, y solicitar ingredientes específicos para crear la pizza perfecta que desea.

GraphQL facilita el seguimiento del uso de los campos

Con REST generalmente no hay manera de determinar si el cliente necesita un campo, por lo que cuando se trata de refactorizar o descontinuar, es imposible determinar el uso real.

GraphQL permite realizar un seguimiento de qué campos utilizan los clientes.

Acceda a recursos de datos anidados

GraphQL permite generar muchas menos llamadas de red.

Pongamos un ejemplo: necesitas acceder a los nombres de los amigos de una persona. Si tu API REST expone un /personpunto final que devuelve un objeto de persona con una lista de amigos, generalmente obtienes primero la información de la persona haciendo GET /person/1, que contiene una lista de ID de sus amigos.

A menos que la lista de amigos de una persona ya contenga el nombre del amigo, con 100 amigos necesitarías realizar 101 solicitudes HTTP al /personpunto final, lo que supone un enorme costo de tiempo y también una operación que consume muchos recursos.

Con GraphQL, solo necesitas una solicitud, que pide los nombres de los amigos de una persona.

Tipos

Una API REST se basa en JSON, que no puede proporcionar control de tipos. GraphQL tiene un sistema de tipos .

¿Cual es mejor?

Las organizaciones de todo el mundo están cuestionando sus opciones de tecnología API y están tratando de descubrir si migrar de REST a GraphQL es lo mejor para sus necesidades.

GraphQL es perfecto cuando necesita exponer representaciones de datos complejas y cuando los clientes pueden necesitar solo un subconjunto de los datos o realizan consultas anidadas regularmente para obtener los datos que necesitan.

Al igual que con los lenguajes de programación, no hay un único ganador, todo depende de tus necesidades.

Además, hay un punto que quiero señalar: puedes usar ambos.

Puedes mezclar y combinar REST y GraphQL según tus necesidades y, a veces, es lo mejor que puedes hacer.




Tal vez te puede interesar:

  1. Introducción a React
  2. Agregar evento de clic a los elementos DOM devueltos desde querySelectorAll
  3. Cómo cambiar el valor de un nodo DOM
  4. Cómo comprobar si un elemento DOM tiene una clase

Comparación entre API GraphQL y API REST

Comparación entre API GraphQL y API REST

El descanso es un conceptoUn único punto finalAdaptado a tus necesidadesGraphQL facilita el seguimiento del uso de los camposAcceda a recursos de datos anidad

programar

es

https://aprendeprogramando.es/static/images/programar-comparacion-entre-api-graphql-y-api-rest-2362-0.jpg

2025-01-09

 

Comparación entre API GraphQL y API REST
Comparación entre API GraphQL y API REST

Si crees que alguno de los contenidos (texto, imagenes o multimedia) en esta página infringe tus derechos relativos a propiedad intelectual, marcas registradas o cualquier otro de tus derechos, por favor ponte en contacto con nosotros en el mail [email protected] y retiraremos este contenido inmediatamente

 

 

Update cookies preferences