Main Answer: Headless Liferay decouples visual frontends (React/Next.js) from the portal CMS core, utilizing GraphQL APIs to retrieve structured content arrays in a single network round-trip.
Audience: Frontend developers, decoupled web architects, and API engineers.
Applicable Use Cases: Building responsive frontend portal sites, single-page application widgets, and centralizing content distribution.
| API Feature | REST Endpoint Method | GraphQL Equivalent |
|---|---|---|
| Content Fetch | GET /v1.0/structured-contents | query { structuredContents { items { id } } } |
| Create Article | POST /v1.0/structured-contents | mutation { createStructuredContent { id } } |
| Image Pull | GET /v1.0/documents/{id} | query { document { contentUrl } } |
Querying Liferay's GraphQL Schema
Liferay exposes structured schemas via /o/graphql. Explore the API using interactive GraphQL
playgrounds, fetching site articles, document assets, and taxonomies using nested queries.
Integrating Next.js Rendering
In your Next.js application, fetch Liferay data during build cycles or server-side render requests. Map the returned JSON blocks to React cards, ensuring clean SEO tags and sub-second load times.
Caching API Payloads
Speed up delivery by caching GraphQL responses. Configure CDN caching keys based on content update webhooks, ensuring visitors receive cached content instantly without hitting the database.
Frequently Asked Questions
Is GraphQL faster than REST APIs in Liferay?
Yes. GraphQL avoids over-fetching. You query exactly the fields you need in a single round-trip, boosting loading speed.
How do we secure public headless APIs?
Register CORS profiles and force OAuth2 token headers on all delivery endpoints, restricting access to authorized origins.