Esta es una traducción que desde EGA Futura ofrecemos como cortesía a toda la Ohana y comunidad de programadores , consultores , administradores y arquitectos de Salesforce para toda Iberoamérica .

El enlace a la publicación original, lo encontrarás al final de este artículo.

Nos complace anunciar que estamos invirtiendo más en nuestras API de experiencia con el lanzamiento de la API de Salesforce GraphQL . Con el lanzamiento de Summer '22, la API de Salesforce GraphQL se lanzará en Beta. Esta API permite a los desarrolladores interactuar con Salesforce Platform a través de GraphQL, proporcionando una nueva forma de crear aplicaciones web y móviles ricas y de alto rendimiento. La versión Beta contará con consultas de registro, o en otras palabras, la capacidad de buscar información específica en los SObjects de su organización.

¿Qué hay de malo con las API REST tradicionales?

Imagina que estás en tu restaurante favorito, en este caso lo llamaremos RESTAurante. Su mesero se acerca a su mesa y le pregunta: "¿Qué le gustaría pedir?" Usted responde: "Tomaré los ravioles, pero por favor, sin queso encima". Para su disgusto, su mesero le explica: “El queso ya se ha agregado y no se puede quitar. Conseguirás los ravioles con el queso, o tendrás que pedir otra cosa. Aquí radica un problema fundamental con los puntos finales REST tradicionales: usted, como cliente, no puede cambiar lo que le devuelve el Cheese Ravioli Endpoint . Si este restaurante hubiera sido el restaurante GraphQL, podrías pedir ravioles sin queso .

De acuerdo, sé lo que podría estar pensando: "Pero, ¿pensé que REST era el estándar de oro para las API?" Tu no estas equivocado; REST sigue siendo una excelente manera de diseñar e implementar API. Sin embargo, las API REST tradicionales tienen algunos desafíos cuando se trata de crear las aplicaciones móviles y web escalables y de alto rendimiento de hoy en día.

Exploremos todas las fallas con las API REST tradicionales, repasemos qué es GraphQL y cómo GraphQL resuelve estos problemas. También discutiremos otros beneficios de GraphQL, como la capacidad de consultar los datos de su organización para obtener información específica. Una vez que se dé cuenta de todas las ventajas de una API de GraphQL, querrá aprovecharla para crear las mejores aplicaciones para sus usuarios.

¿Qué es GraphQL?

GraphQL es un lenguaje de consulta estándar para API y un tiempo de ejecución para completar esas consultas con sus datos. Una API de GraphQL es un nuevo paradigma de envío y recepción de datos, que ofrece a los clientes un punto final único para solicitar todos los datos necesarios en una sola solicitud. Las aplicaciones que llaman a las API GraphQL suelen tener mucho más rendimiento que las que usan las API REST tradicionales. Esto se debe a que pueden reducir los viajes de ida y vuelta al servidor a través de su capacidad para recuperar todos los datos necesarios en una sola invocación. Los clientes no solo pueden consultar todos los datos que desean en una sola solicitud, sino que la respuesta contendrá solo los datos que necesitan. Nada más y nada menos. GraphQL es una nueva forma de abordar muchos puntos débiles para los desarrolladores de aplicaciones; es una especificación abierta respaldada por una comunidad diversa que ha tenido éxito a gran escala.

Los desarrolladores carecen de control con las API REST tradicionales

Las API REST tradicionales tienen algunas deficiencias. Supongamos que realiza una llamada a una API REST tradicional y su caso de uso es buscar el número de teléfono de un usuario. Lo más probable es que haga una llamada a un extremo de la API REST que le proporcione todos los datos a los que tiene permiso para acceder sobre ese usuario. Por lo tanto, en lugar de solo recuperar el número de teléfono de un usuario, también recibirá su dirección, el nombre de su administrador, etc. En resumen, todo lo que se le devuelva que no sea el número de teléfono del usuario son datos desperdiciados , lo cual es un costo innecesario. tanto para el servidor como para usted. Claro, podría usar parámetros de consulta en cada punto final de REST para evitar este problema de sobrecarga de datos con las API de REST. El problema es que no existen estándares ampliamente adoptados para esto, por lo que no todos los puntos de enlace actuales lo tienen, y puede competir con el espacio ya limitado en la URL. Si un punto final no tiene esta funcionalidad, entonces no hay nada que pueda hacer. Con GraphQL, incluye todos los campos en su consulta que le interesan y recibe solo los datos de esos campos, una función conocida como "selección de campo".

Demasiados datos devueltos en una sola solicitud de API pueden ser un desperdicio. ¿Por qué no creamos una multitud de puntos finales que devuelvan datos muy específicos para limitar este desperdicio? Esto da como resultado demasiados puntos finales REST, lo que hace que sea aún más difícil para los desarrolladores determinar cuál es el correcto al que deben llamar. Sin embargo, si desea todos los datos asociados, deberá llamar a cada uno de estos puntos finales para obtener lo que necesita, y cada llamada resultará en otro viaje de ida y vuelta al servidor. Como desarrollador de una aplicación, desea un buen rendimiento para sus usuarios. Una forma de lograr esto es minimizar los viajes de red y la transferencia de datos innecesaria entre el cliente y el servidor, ya que cada viaje de ida y vuelta adicional agrega latencia. Este problema es especialmente pronunciado para los usuarios móviles que pueden tener conectividad o ancho de banda limitados. Una API de GraphQL resuelve este problema al permitir la agregación de recursos o, en otras palabras, la capacidad de recuperar todos los datos que su aplicación necesita en una sola solicitud.

Como se mencionó, a menudo ocurre que las API REST tienen compatibilidad limitada o nula para cosas como la selección y agregación de campos. Con frecuencia, los desarrolladores se encuentran con compromisos difíciles que los distraen de crear la mejor experiencia posible para sus usuarios. Entonces, ¿cómo se crea una aplicación con un rendimiento increíble y sin desperdicio de datos? La solución es bastante simple: un único extremo REST cuya respuesta tiene exactamente lo que necesita, sin nada adicional . El problema es que este punto final no existe . Bien, como desarrollador, solicita que se cree un nuevo punto final REST con todas sus necesidades exactas. Sin embargo, sabe que no es realista pensar que se creará un nuevo punto final para cada posible caso de uso. Pero, ¿no sería genial si pudieras controlar qué campos y qué recursos te devuelve el servidor? Bueno, ahora podrá hacerlo con la nueva API GraphQL de Salesforce: un punto final único cuya respuesta puede moldear usted .

GraphQL pone el poder en manos de los desarrolladores

A diferencia de las API REST tradicionales, con GraphQL, el poder está en tus manos, el desarrollador. Como cliente, puede pedirle al servidor exactamente lo que quiere y no recibir ningún dato que no necesite. Puede evitar múltiples viajes de ida y vuelta al servidor, ya que puede incluir en su solicitud lo que tradicionalmente requeriría llamar a múltiples puntos finales REST. Con herramientas potentes como GraphiQL , un IDE web para GraphQL, puede analizar el esquema y aprender rápidamente cómo solicitar los datos que necesita.

En las aplicaciones móviles y web, el tiempo que se pasa en la red suele ser una parte importante del tiempo total de procesamiento de solicitudes, y cada viaje de ida y vuelta genera tiempos de espera más largos. Esto puede provocar la insatisfacción del usuario, un menor uso de la aplicación y peores tasas de conversión. Con GraphQL, ya no tienes que preocuparte por lidiar con múltiples puntos finales y tener que ir y venir con el servidor para recuperar los datos que necesitas. Como desarrollador, puede concentrarse en sus propios requisitos de software sin preocuparse por cuántos terminales necesita llamar o cómo va a unir todos los datos que recibe. No es necesario escribir varias capas de abstracción, ni tampoco es necesario que dedique su tiempo a orquestar una llamada a la API después de una llamada a la API.

Qué significa esto para los desarrolladores de Salesforce

Aunque existen imperfecciones con las API REST tradicionales cuando se crean experiencias, todavía tienen un lugar y no estamos perdiendo nuestra inversión allí. Más bien, una fortaleza clave de Salesforce Platform es nuestro soporte para varios tipos de API . Las API del sistema, como la API de SObject , o las API de experiencia como laAPI de la interfaz de usuario, han permitido a los desarrolladores crear una amplia variedad de aplicaciones utilizando la Plataforma de Salesforce. Con la nueva API de Salesforce GraphQL, brindamos aún más beneficios para los desarrolladores de Salesforce, que incluyen:

  • Selección de campo
  • Agregación de recursos
  • introspección del esquema
  • Capacidad de consulta de SObject

Ayúdanos a definir la hoja de ruta para GraphQL en Salesforce

En la versión Summer '22, el esquema de Salesforce GraphQL inicialmente le permitirá consultar sus SObjects expuestos de la API de la interfaz de usuario. En el futuro, esperamos agregar recursos adicionales de la familia de API de la interfaz de usuario, como información del objeto o diseño , así como recursos de otras familias de API en Salesforce. Si desea que se agregue un recurso en particular al esquema, háganoslo saber a través de IdeaExchange . Cuando se lance la versión beta de Summer '22, si tiene comentarios sobre la propia API de GraphQL, comente la publicación de GraphQL IdeaExchange .

¿Que sigue?

Únase a nosotros en San Francisco en TrailblazerDX '22 los días 27 y 28 de abril, donde Spencer MacKinnon y Ben Sklar analizarán en detalle el nuevo extremo de API GraphQL de Salesforce. ¡No querrás perdértelo! Durante el próximo año, compartiremos más publicaciones de blog con detalles técnicos sobre la API GraphQL de Salesforce, cómo se creó y cómo puede usarla.

Sobre los autores

Spencer MacKinnon es un desarrollador de Salesforce que ha dedicado demasiado tiempo a pensar en GraphQL. Solía tener pasatiempos, pero ahora pasa las tardes persiguiendo a su cachorro de diez semanas, Merope. Síguelo @smackinnon.

Ben Sklar es gerente sénior de productos en Salesforce y es un gran admirador de GraphQL. Es un ávido esquiador, pero pasa la mayor parte de su tiempo jugando con su Cavapoo, Percy.

Esta es una traducción realizada por EGA Futura, y este es el link a la publicación original: https://developer.salesforce.com/blogs/2022/03/introducing-the-salesforce-graphql-api.html

Entradas recomendadas