Feature #1050

Updated by Alexander Watzinger over 1 year ago

To make it easier for other application to use data from OpenAtlas directly (e.g. the OpenAtlas frontend for presentation, developed by Stefan) we plan to implement an API (application programming interface).

Main purpose is the automatic data exchange between systems via URLs.

At the moment we are in the concept phase and collecting [[api|ideas]] will use this issue to collect ideas. *Feel free to add and comment.*

* All API request will include "api" after the domain URL e.g. ** for one entity or ** for a list of entities
* There will be multiple formats available (e.g. RDFS, JSON, XML)

* First step is to get basic information of an entity via including the entity id in the URL
* Next step will be to get (most) associated information e.g. information about super and sub entities, related entities like actors, events, ...
* Finally it should be possible to get all the information needed for e.g. OpenAtlas frontend presentation software, either especially developed or with a generic parameterized URL solution

Since the API should be very stable (additions are ok but no interface changes for possible other systems already using it) we will take some time to plan it in detail.

To discuss:

* URL schema as a whole
* Which output formats to offer (e.g. RDFS, JSON, XML) and how to request them.
E.g. making one default and add a postfix like */api/1234* and */api/1234.json* or prefixing them like */api/rdfs/1234* and */api/json/1234*
* How do we add CIDOC CRM related information and will this information be optional?
* Do we allow the API to be accessed anonymously only after the data is already open or do we want a protected service. If yes, how can we secure it?

The release date is difficult to estimate at this point but we aim for the end of 2019.