HATEOAS is an acronym. It is part of design principle called REST by Dr. Roy Fielding. "Architectural Styles and the Design of Network-based Software Architectures". Dissertation. University of California, Irvine.

Shown here is a mindmap describing a medical or health science concept. Each node (a discrete piece of knowledge) is linked to other nodes.

State diagram is the analogue in data science and system design. A state diagram is a model of deterministic graph with nodes and arcs.

The nodes are called state, the arcs are transition. One may follow a transition to go from one state to another, and to navigate around the entire graph.

The Role of HATEOAS in CDISC Library API

  • The heart of the CDISC Library is the API
  • A couple of important constraints for REST API:
    • Each response contains links for next requests
    • Server provides clients a uniform method for determining what contents can be retrieved, actions can be performed, and formats can be represented
  • Flattened representation for the linked data world of information

An API response in JSON format when querying about SDTMIG v3.2

A link ("href") is provided for one of the class objects accessible ("type"), whose name is Events Observation Class ("title").

An application client (web, mobile, or programming language of choice) can reliably use this uniform interface for subsequent requests.

This is the response after following the hyperlink given /mdr/sdtmig/3-2/classes/Events.

In other words, it is a state transition from SDTMIG v3.2 to the SDTMIG v3.2 Events class

A link ("href") is provided for one of the SDTM dataset objects accessible ("type"), whose name is Adverse Events Class ("title").

These links, for state transitions, aligns with the standards' hierarchy: classes > domains > variables > codelists.

Two endpoints are useful:

  • /mdr/products
  • /mdr/products/{product-family}

Where, product family is one of these:

  • Terminology
  • DataCollection
  • DataTabulation
  • DataAnalysis

Highlighted is a link to the a CDISC Controlled Terminology package after querying for a full product listing.

Notice it is using the same uniform interface for linking.