Everything as a Service
Jul 16, 2020
By: Jason Smith
With a highly open architecture and growing set of REST services, developers can deeply integrate disparate applications with dotCMS to form a seamless DX platform that brings positive business outcomes. But what do we mean by “Everything as a Service”, exactly? Let’s take an in-depth look at the different ways dotCMS exposes content and other data via REST APIs.
dotCMS Everything as a Service
dotCMS has a robust and growing set of REST APIs that are fast, secure, and well-documented. These APIs enable developers to pull nearly everything they would need for deep integrations with external systems and frontend frameworks.
When it comes to content management with dotCMS, content types are critical. Every piece of content within the system is an instance of a content type. Furthermore, content types determine the structure of content, which users are permitted to edit it, the workflow schemes associated with it, and much more. With the Content Type API, developers can create, update, or delete content types, and also modify content type fields and field variables.
Learn More: Structured Content Types - CRUD API
dotCMS has a robust Content API for performing full CRUD — create, read, update, and delete — operations on content. Along with operations on a single piece of content, the Content API enables frontend developers to pull many pieces of related content at once based on categories or relationships as defined by their taxonomy. There are also many other options for making frontend integrations easier, including pulling pagination or retrieving content within specific date ranges.
Learn More: Using the Content APIs in dotCMS
While dotCMS has a built-in image editor for marketers, it’s also possible for developers to process images on the fly. There is an enormous number of options for dynamically modifying images ranging from simple cropping and resizing edits to advanced editing of hue, saturation, and brightness. Every option within the image editor is also available via APIs. Using the image processing APIs, it’s possible to store a single image and reuse it across many devices or touchpoints by modifying the image in real-time during retrieval.
Learn More: Focal Point Cropping and Image Processing
Pages & Layouts
The Page Layout API enables developers to utilize the Layout as a Service when building websites and frontend apps. With a single API call, developers can retrieve all the elements for a page as JSON or pre-rendered HTML. By using Layout-as-a-Service, marketers can build entire pages in-context, and developers can easily integrate them with popular frontend frameworks like React, Angular, or Vue.
Learn More: Layout API - Layout as a Service
Along with the Layout as a Service, dotCMS has a Navigation API that makes integration with web-based frontends much easier. With just one endpoint, the Navigation API returns a list of navigation elements, including files, folders, pages, and links. This information can be used to build highly dynamic UIs that don’t require hardcoded menus.
Learn More: Menu and Navigation API
Widgets are critical for creating dynamic web experiences from a simple one-off widget to reusable widget types. With the Widget API, developers can retrieve a widget directly without it being displayed on a page. Developers can also use the Widgets API to display remote widgets from another site.
The Language Properties API enables developers to retrieve the properties and variables for configured languages. Language variables let you create multiple versions of a template, piece of content, or other dotCMS objects. The Language Properties API, therefore, is critical for brands that have a global presence and are building a multilingual website.
Lean More: Language Properties REST API
Content Targeting Rules
The rules engine enables marketing teams to automatically assign personas to site visitors based on criteria that they define. And these rules can also be managed by developers using REST APIs. There’s full CRUD for single rules, and the ability to retrieve a full list of rules as well. There are also APIs for editing the specific conditions and actions that make up a particular rule. With these APIs, developers can dynamically modify rules on the fly.
Learn More: Managing Rules via REST
dotCMS leverages Elasticsearch to provide site search capabilities so that developers can easily pull content using Lucene query syntax. Elasticsearch thoroughly indexes dotCMS content to make it highly searchable. Along with pulling content more accurately, developers can manage these Elasticsearch indexes using the REST APIs.
Learn More: Elasticsearch REST API
Roles, Permissions & Workflows
With the Workflow API, developers can create, modify, and execute workflows to integrate deeply with third-party systems like translation software. The Workflow API includes endpoints for schemes, steps, and actions — the building blocks of a dotCMS workflow. You can access the roles & permissions of particular users as well. When building an integrated tech stack, third-party applications with proper access can easily trigger workflow actions externally via the Workflow REST API.
Learn More: Saving and Managing Content with Workflows
Bundles & Publishing
Along with the Workflow API, dotCMS has a Remote Publishing & Bundle API that makes integration with a CI/CD pipeline much easier. This API includes endpoints for creating bundles — a set of dotCMS objects ranging from content and content types to sites and templates — and adding objects to a bundle. There are also endpoints for uploading or downloading bundles and for push publishing a bundle to one or more environments with a single API request.
Learn More: Remote Publishing / Bundle API
dotCMS Is Ready For The Best of Breed Approach
While dotCMS exposes nearly everything under its “Everything as a Service” approach, some organizations may want even more flexibility. That’s why dotCMS has native support for GraphQL and the ability to create new endpoints using scripted endpoints or the innovative Scripting as a Service feature as well.
Altogether, these integration points ensure dotCMS is highly interoperable and capable of seamlessly connecting with other best of breed software. The platform has an open architecture so that no content or data gets trapped within the CMS. Consider using dotCMS as the content hub when building out your own DX platform.