Give Me My Friggin’ Content! Or, why methods that start with “Get” are a good thing

By Deane Barker

Getting content out of a system is just as important as putting it in – a truth that gets sadly neglected by a lot of CMS vendors.

Methods that start with “Get” are good. Very good. They’re my favorite thing to see when working with a CMS at the API level. You see, there’s nothing more frustrating for a developer than to not be able to get at something. I find it in CSS all the time – you need to attach to that one little…

The author emphasizes the importance of retrieval APIs in content management systems (CMS), stating that they should be as proficient as relational databases in providing content retrieval. They criticize systems that focus more on superficial features like widget-based presentation layers, rather than improving their fundamental retrieval API. The author concludes by stating that if a CMS fails to provide a reliable API for content retrieval, it should be criticized.

Generated by Azure AI on June 24, 2024

Methods that start with “Get” are good. Very good. They’re my favorite thing to see when working with a CMS at the API level.

You see, there’s nothing more frustrating for a developer than to not be able to get at something. I find it in CSS all the time – you need to attach to that one little element…but you can’t for some reason (though, with the advent of jQuery, this happens less and less). That’s why SQL makes me happy, generally. If there’s some data in a table, you can get at it.

Content management APIs will drive you nuts in this respect. They often suck. And getting the content you want in the format you want can be difficult, and often makes you want to throw your machine out the window.

Seth Gottlieb and I were talking today about this very thing. We were discussing it in the context of content management systems that provide a superficial layer of functional crap rather than make sure the fundamental things, like their retrieval API, are well-built. This is something we discussed in “Architecture and Functionality in Content Management,” a couple years back. (More on this later…)

I’m now going to reveal the secret of successful content management. Seriously folks – this is it. Drumroll please –

A good CMS should manage your content well and let you have it back in whatever format, permutation, grouping, filtering level, depth, and quantity as you want. And then it should get the hell out of your way.

I’m mystified at systems that are less adept than a simple relational database at letting you have your content back. You put it in the system, then go to get it back out…and the API just sucks. Before long, you punt and start writing direct SQL, which makes you wonder why you bothered with a CMS in the first place.

Now, here’s where my frustration ratchets up another notch –

What drives me nuts is when a CMS provides a bunch of widget-y crap for the presentation layer when they should be concentrating giving you more methods that start with “Get.” Yes, your little Flash image viewer doohickey is very pretty, but why can’t I get a sortable list of content matching the criteria I want? With that in mind, you can take that image viewer and suck on it.

Widgety crap in general just pisses me off. Why is this stuff integrated so deeply into your system anyway? Is it that weak that the only way you can dazzle people in a sales presentation is to show people some stupid, flashy little widget? (Talk about 10 minute software…)

Here’s the deal – if you make a CMS and persuade me to put my content into it, you need to make damn sure that I can get content back out of it with at least as much proficiency as the crappy Microsoft Access databases I was writing back in 1998. If not, then rework your API until it no longer pisses me off.

Retrieval APIs are foundational. They are not an add-on. They are one of the pillars of content management, period. If you are putting more work into your widgets than your retrieval API, then you are boned.

This is item #166 in a sequence of 357 items.

You can use your left/right arrow keys to navigate