While we recommend building new websites in a JAMStack (Javascript-API-Markup) architecture and utilizing modern javascript frameworks, there may be some cases where you need to take an existing, traditional server-rendered (PHP, Java, etc) website and integrate it with Agility CMS.
Looking for support for ASP.NET/Core? Agility CMS provides an SDK that handles content sync, page routing, and page rendering. Please check out our .NET documentation section for details.
There are various levels at which you can integrate Agility CMS into your website. You may decide that you want Agility CMS to power only a subset of your site, such as Blog Posts. Or you want Agility CMS to power the entire sitemap and page rendering of your entire website. The extent to which you integrate Agility CMS will directly impact what editors can and can't do in Agility CMS in regards to your website.
How to Retrieve Content?
Agility CMS provides a REST API to access all Content, Pages, and Sitemaps for your instance.
Features
The following table illustrates the features you should consider when designing your Agility CMS integration:
Name | Feature | Technical Notes | Integration Level |
---|---|---|---|
Page Routing | Allow editors to manage their page tree, and adding and deleting pages will reflect the actual pages on the website. | Get Sitemap API Method | Recommended |
API Caching | Cache all content retrieved via the Content Fetch API, and store in a local cache for higher performance. Example: Cache content in the local file system after you've retrieved it, and clear the cache when content has changed (via a Webhook). |
Custom Cache | Recommended |
Content Management | Allow editors to manage the structured content for one or many specific types of content on the website. Example: Blog Posts, Products, Header, Footer, etc. |
Requires Get Content Item/List API Method | Minimum |
Preview | The ability for editors to preview content changes in the website, prior to publishing. | Setup an environment using the Preview access token for the API | Minimum |
Page Management | Allow editors to set page-level content such as SEO and control the individual functional components of a page (i.e Modules). Editors can control all aspects of what is on each page. |
Requires Get Page API Method | Recommended |
Minimum Integration
At a minimum, an integration with Agility CMS will provide editors the ability to manage one or many specific lists or items in the CMS (Content Management).
Editors should be able to preview their content changes prior to publishing. This can be enabled by setting up another website environment that specifically uses the Preview access token for the API.
While this will allow editors to manage specific content, it does not provide any page management, so only content that has been specifically designed to be managed in Agility CMS can be managed by editors.
At this level, editors are not able to manage page-specific content, nor add or remove pages. Typically, the website code itself determines what pages exist.
Recommended Integration
In addition to the Minimum Integration, a recommended integration allows editors to manage all aspects of pages. This includes SEO, the page template, which modules (functional components) make up the page, and the ability to create or delete pages. Pages that exist on the website should mimic the page tree as it exists in Agility CMS.
Lastly, for performance, the content fetched from Agility CMS should be appropriately cached on the website, either in memory or the file system (or both!). This ensures that external HTTP request(s) to the API aren't required for each page render. The website itself should also have output cache enabled, so it doesn't need to re-render the page on every request.
Comments
Please sign in to leave a comment.