Skip to content
Rudolph Pienaar edited this page Oct 8, 2015 · 8 revisions

Welcome to the ChRIS_API wiki!

The ChRIS_API project is the main development site for version 3 of the Children's Research Integration System (ChRIS), codename "Ultron".

What is ChRIS conceptually?

ChRIS can be thought of as a collection of users. Each user has a collection of "feeds". Each feed is a collection of components.

This data structure logically lends itself to a tree- (or dictionary) like organization (as opposed to a relational mapping of tables). Indeed, a ChRIS data encapsulation can be mapped in a one-to-one fashion to a filesystem representation.

ChRIS "Ultron"

ChRIS "Ultron" is designed as fully-fledged web-service, with a clean separation between the front end "controller" components and the back end engine. Indeed, the front end can be a fully fledged web-based session with the immersive UI experience, or it can be a set of command-line curl interactions.

Two API paradigms are available: a REST API and a more conventional RPC-type API.

REST API

The REST API is the preferred method of interacting with ChRIS. Due to the internal tree-like organization of users/feeds/components, a REST API is ideal for interrogating and interacting with aspects of the data tree.

RPC API

RPC API decomposition

The RPC API maps closely to the actual internal programming interface of the ChRIS system, and as such can be more powerful and expressive. In the same vein, it is also more complex, and potentially more unstable.

For the most part, API calls consist of the following components that map in a one-to-one fashion to internal programming constructs in the ChRIS system:

named keyword meaning
object the object in the ChRIS system to call
method the method of the above object
parameters a comma separated list of parameters for the called method
auth an authorization token component
session the session/state control

object

method

parameters

auth

session

Clone this wiki locally