Welcome to Nikcio.UHeadless, a powerful package that enables you to create a headless GraphQL interface for your Umbraco CMS. This package provides an easy to setup solution for exposing your data and offers a wide range of extensibility options to tailor the headless functionality to your specific needs.
The Nikcio.UHeadless package is compatible with the following Umbraco versions:
Umbraco version | Supported Version |
---|---|
Umbraco 10 | v3.x.x |
Umbraco 12 | v4.x.x |
Umbraco 13 | v4.2.x+ & v5.x.x |
Umbraco 14 | v6.x.x |
For more information, please refer to the Versioning section.
To install the Nikcio.UHeadless package, run the following command:
dotnet add Nikcio.UHeadless
You can also find the package on NuGet.
To integrate the package into your project, follow these steps:
-
Open your
Program.cs
file. -
Add the following using statements:
using Nikcio.UHeadless; using Nikcio.UHeadless.Defaults.ContentItems;
-
On the
UmbracoBuilder
, add the following code:builder.CreateUmbracoBuilder() // Default Umbraco configuration .AddUHeadless(options => { options.DisableAuthorization = true; // Change this later when adding authentication - See documentation options.AddDefaults(); options.AddQuery<ContentByRouteQuery>(); options.AddQuery<ContentByGuidQuery>(); }) .Build();
-
Then after the
app.BootUmbracoAsync()
method, add the following code:await app.BootUmbracoAsync(); app.UseAuthentication(); app.UseAuthorization(); GraphQLEndpointConventionBuilder graphQLEndpointBuilder = app.MapUHeadless(); // Only enable the GraphQL IDE in development if (!builder.Environment.IsDevelopment()) { graphQLEndpointBuilder.WithOptions(new GraphQLServerOptions() { Tool = { Enable = false, } }); } app.UseUmbraco() // Default Umbraco configuration
With these configurations in place, your content will be available at /graphql
.
To get started, try querying your content using their GUIDs or routes. For example with the query below:
Tip: GUIDs can be found in the info tab when viewing content in the backoffice
query {
contentByGuid(id: "dcf18a51-6919-4cf8-89d1-36b94ce4d963") {
id
key
name
statusCode
templateId
updateDate
url(urlMode: ABSOLUTE)
urlSegment
}
}
For detailed documentation and usage instructions, please refer to the Nikcio.UHeadless Documentation.
Nikcio.UHeadless follows the principles of Semantic Versioning to ensure consistency. The version numbers have the following meaning:
vX.Y.Z
- X (Major): Indicates a breaking change.
- Y (Minor): Signifies a feature change.
- Z (Patch): Represents bug fixes.
Umbraco version | Supported Versions | Development |
---|---|---|
Umbraco 9 | v1.x.x & v2.x.x | No development |
Umbraco 10 | v2.x.x & v3.x.x | Only reported issues for v3.x.x |
Umbraco 11 | v3.x.x & v4.x.x | No development |
Umbraco 12 | v4.x.x | Only reported issues for v4.x.x |
Umbraco 13 | v4.2.x+ & v5.x.x | Active branch (v5.x.x) |
Umbraco 14 | v6.x.x | Aligned with v5 |
We welcome contributions to Nikcio.UHeadless. Please refer to the Contributing Guide for more information on how to get involved.
Sponsor Nikcio.UHeadless Development
If you find Nikcio.UHeadless valuable and would like to support its ongoing development, consider sponsoring the project through GitHub Sponsors. Your sponsorship helps ensure the continued improvement and maintenance of this package. Thank you for your support!