GraphQL is a high-performance query language for working with RESTful API services. It is very popular among software developers and has a large community using it.
With that in mind, and considering all the productivity and performance benefits of adopting the protocol, we’ve introduced official support of GraphQL in Sitefinity DX 14.3.
We’ve tried to ease the learning curve for developers and accelerate time to market by autogenerating GraphQL endpoints, as we have done with OData support.
GraphQL is integrated with the existing user interface for managing RESTful API services in the Sitefinity backend. When creating a GraphQL web service, you must specify the respective protocol option.
Using GraphQL in your projects can be combined with multiple technologies. Check out these examples available in the Sitefinity GitHub repo:
GraphQL support in Sitefinity is easy to enable via a Nuget package and provides a number of advanced developer options.
In short, GraphQL and OData protocols appear to be very similar and serve the same purpose. However, there are substantial differences in both their usage and the way they expose content. A few of GraphQL’s advantages over OData are:
Analyzing performance is always important when you rely on APIs for your implementation. During the implementation of GraphQL, we managed to address all N+1 problems and make sure our GraphQL implementation is on par with OData support.
In general, the performance of the GraphQL server will vary based on the query submitted to the server, your server setup, etc. As expected, complex queries may require more resources since they are fetching large amounts of data. Internally, the same base API layer for OData is used; therefore, the query performance would be roughly the same. The difference in OData is that you should use a third-party middle layer for caching, such as Apollo.
GraphQL is included in Progress.Sitefinity.All NuGet package that installs Sitefinity CMS.
GraphQL is also distributed as an optional NuGet package, which you install if you have upgraded your Sitefinity project to release 14.3 and want to enable the protocol. More information about enabling GraphQL is available in the Sitefinity documentation.
Hopefully, you haven’t missed the release of our stand-alone React renderer that extends the headless content delivery capabilities of the platform. The React renderer app is a decoupled frontend for Sitefinity. The data protocols it supports include both OData and GraphQL for custom widget development.
So, there we are. Sitefinity DX has adopted an API-first approach to content delivery for headless content management and multi-channel experiences. Sitefinity DX provides all the editorial tools for marketers and allows fast, flexible and developer-friendly access to APIs.
Discover all the advanced developer features of Sitefinity DX and hone your skills with our Sitefinity training and certification. If you want to experience the platform and its capabilities first-hand, grab your free trial now.Start Your Sitefinity DX Trial
A Software Architect on the Sitefinity team, Martin Gebov has been with Progress for 10 years. Over the last couple of them, his main focus has been delivering the .NET Core solution. Prior to that, Martin helped build the new UI, as well as worked on multi-lingual support, the compiler, and other key components of the platform.
Let our experts teach you how to use Sitefinity's best-in-class features to deliver compelling digital experiences.Learn More
Subscribe to get all the news, info and tutorials you need to build better business apps and sites
You have the right to request deletion of your Personal Information at any time.
You can also ask us not to pass your Personal Information to third parties here: Do Not Sell My Info
We see that you have already chosen to receive marketing materials from us. If you wish to change this at any time you may do so by clicking here.
Thank you for your continued interest in Progress. Based on either your previous activity on our websites or our ongoing relationship, we will keep you updated on our products, solutions, services, company news and events. If you decide that you want to be removed from our mailing lists at any time, you can change your contact preferences by clicking here.