Digital Asset Management systems are not much fun on their own – their real value is in helping data flow between all content-related systems with ease. Many of our customers are using our DC-X DAM product as the central content hub, in conjunction with Web Content Management systems, editorial systems, mobile apps, accounting systems and others.

To help you and us make our DAM interoperable with all these systems, DC-X offers hotfolders, RSS feed and XML support, a PHP API and plug-in hooks, Linux command line tools – and a Web Service API. The existing Web Service API is based on the RESTful Atom Publishing Protocol, also known as AtomPub or RFC 5023. And now we’re adding a brand new JSON API to the mix!

Why a second Web Service API? Well, our AtomPub API is relatively verbose. We wrapped the DC-X XML format in AtomPub XML, duplicating some of the information. And while XML is – in my opinion – still the most flexible and future-proof format for exchanging structured data, an increasing number of developers prefer JSON. The great things about JSON are that it’s rather lightweight, and Web browsers support it natively (so you can easily do API calls from JavaScript). All the major programming languages can handle JSON.

Like the AtomPub API, the new DC-X JSON API is also inspired by the REST style, with each DC-X object living at its own URL and using the HTTP verbs PUT, POST and DELETE for data manipulation. To move DC-X closer to the Linked Data ideal, we’re making our JSON conform to the JSON-LD format. Error messages are formatted according to the Problem Details for HTTP APIs draft.

The DC-X JSON API lets you search for assets (images, articles, documents), access asset files, read metadata, update it, and delete assets. This includes rights metadata, publication metadata (tracking asset usage), links between assets, and embedding images within stories. We’ll add support for collections (creating collections, adding assets to them). A major improvement compared to the AtomPub API is that you can define very selectively which data to retrieve or update: If you only need the headline and date of an asset, you can request just these two fields. And to save requests, you can retrieve an object and other objects linked to it in a single call.

To help you get up to speed, we’re providing documentation, an API client written in PHP, and example Curl scripts. But the best feature for beginners is that you can “surf” the API (read-only) in your Web browser and see the data formatted as HTML pages. It’s not quite a Hypermedia API, but now even non-developers can look at the raw data. I’ve seen this tremendously improve the communication between project managers and developers.

Check out my presentation DC-X DAM system architecture, data structures, and APIs for a few example API requests and a screenshot of the HTML interface.

The JSON API is still work in progress, so some features are missing and there may be slight format changes during the next weeks. But if you want to try it out, let us know. Your feedback will help make it better!

Tim Strehle
About Tim Strehle

Tim was part of Digital Collections' Research & Development team from 1999 to 2017. He is an expert for Metadata and Thesauri.

Leave a Reply