Salesforce Shots: GraphQL

As of Winter 23, the Salesforce GraphQL API is available. Provide a new way to create mobile and web applications using GraphQL with the Salesforce Platform. With the help of this new Salesforce GraphQL API, Salesforce Developers can have more features to use like Field Selection, Resource aggregation, Schema introspection, and sObject query ability.

GraphQL is a query language for API, It provides a schema of the data in the API and gives clients the power to ask for exactly what they need. It could aggregate multiple resource requests into a single query, It also supports mutation and subscription. Mutation in GraphQL’s way of applying data modifications to resources. Subscription is GraphQL way for the Client to receive notification on Data modification. GraphQL is mainly built around HTTP for how you get and receive resources from a server.

Working of Traditional REST APIs:

  • Usually, when we interact with a server, we will use REST API and restful endpoints.  HTTP post, get, delete and update all the functions performed for HTTP requests using REST.
  • While using REST API, when a request is received the API responds with the full data payload of that entity but for this, we may need multiple entities at one time and each request is under fetching.
  • Using the REST API, in order to access we have to call our API many more times than required, we are also getting back a bunch of extra information from the server which we don’t actually need.

Both GraphQL and REST API send HTTP requests and receive HTTP responses.

Why GraphQL?

  • GraphQL gets rid of the idea of REST and all different endpoints. It works on a single endpoint instead of multiple endpoints like REST.
  • What data is returned from that endpoint is based on the “Query” that we send to that endpoint.
  • We compose a query of exactly the data that we want. Single query which is going to be very small, we send it to the server and the server which is your GraphQL server is going to parse that query and send you back exactly that information.
  • Plenty of different libraries are there for different languages that help to implement all the GraphQL features.
  • We can define a schema with our own custom object using the type keyword, a type can have multiple fields like a unique Id.
  • GraphQL api has a query type which is the main entry point for a consumer of the API.
  •  We also mutate data, in this case, we implement a mutation type that defines how data can be modified on the API from the server. We can write code to resolve this data in any programming language.

Benefits:

  • GraphQL does not use URL to specify the resources that are available in the API. It uses GraphQL schema to describe all the possible data that clients can query.
  • We can send a complex query that fetches additional data according to the relationship defined in the schema. In REST, we have to send multiple requests for N+1 queries.
  • Provide features that are not available with REST API with the help of open-source GraphQL extensions.
  • For auto-generating documentation, clients can request a List of datatypes available, Defined data types help to reduce the miscommunication between client and server.


Perigeon is a software development firm. With a fresh perspective and dedicated attention to each client, we provide a complete IT solution globally. By defining, designing, and developing solutions tailored to meet our clients’ business objectives, we ensure that our clients get the maximum return on their investment and support them in tackling evolving business and technological issues. Our mission is to provide the best customer service and expertise using the most practical and robust web technologies/software technologies to satisfy our clients’ IT objectives and to provide them with the business and competitive advantage they needed to succeed.

To learn more about Perigeon’s portfolio, visit: https://www.perigeon.com/portfolio/

To learn more about Perigeon’s Salesforce capabilities, visit: https://www.perigeon.com/salesforce/

Drop us a mail at possibilities@perigeon.com to discuss your salesforce requirement.