Issue: #1050 Feel free to add and comment
To make it easier for other application to use data from OpenAtlas directly we plan to implement an API (application programming interface).
There are already some use cases:
- THANADOS OpenAtlas presentation software, developed by Stefan Eichert
- ARCHE (for long time archiving), developed by ACDH
Main purpose is the automatic data exchange between systems via URLs.
- All API request will include "api" after the domain URL e.g. demo.openatlas.eu/api/0.1/1234 for one entity or demo.openatlas.eu/api/0.1/actors 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.
Great Resources on API development:
- O'Reilly:RESTful Web APIs - deposited with Alex
- OpenAPI - a machine readable API documentation format/standard, with a large ecosystem of tools built around it
- JSON:API - a conceptual framework for API development and documentation
- RF2616 - the HTTP specification, quite technical/theoretical, but good to be familiar with at least
- FastAPI - an interesting project to create a fast API
- LinkedTraces - Maybe for actors'?
- JSON-LD-Playground useful tool
This is a overview how the API can be requested:
- Request one entity: /api/0.1/entity/105 or /api/0.1?entity=105
- Request multiple entities: /api/0.1?entity=105&entity=111
- Request by code: /api/0.1/actor