Principes fondamentaux:

La OneGov GEVER API est une RESTful HTTP API.

Celà signifie que des operations sont executées via l’API via des requêtes HTTP, qui sont effectuées par un client HTTP.

HTTP est un protocol de communication entre un client et un serveur, basé sur l’échange de requêtes du client (Request) et de réponses du serveur (Response).

L’utilisation de l’API fonctionne ainsi: des requêtes, incluant un HTTP-Header spécial qui les désigne comme des API-Requests (pour les distinguer de requêtes d’un browser normal), sont effectuées sur l’URL d’un élément de contenu (objet).

Pour la plupart de ces requêtes, l’utilisateur doit d’abord s’authentifier auprès de l’API, voir authentification.


Request

Des requêtes à l’API se composent d’un HTTP Verb, d’une URL, de Request-Heads ainsi que, pour certains types de requêtes, d’un Request-Body en format JSON.

HTTP Verb

Il est décrit dans le chapitre Opérations avec quels verbes HTTP les opérations disponibles sont associées.

URL

L’URL d’une requête est détérminé par l’objet, sur lequel l’on veut effectuer une opération. Cette URL est en général visible pour l’object correspondant dans la bar d’adresse du navigateur.

Headers

L’API utilise JSON pour la sérialisation de données, que ce soit pour les données reçues ou émises. Il faut donc mettre le HTTP-Header Accept: application/json dans la requête, pour qu’elle soit transmise à l’API.

Exemple de requête:

GET /ordnungssystem HTTP/1.1
Accept: application/json

Ce Header doit être inclus dans chaque requête à l’API, et ne sera plus toujours explicitement indiqué dans les autres exemples.

Body

Certains types de requêtes (POST et PATCH) nécessitent des informations supplémentaires, qui sont transmises sous forme de Request-Body en format JSON. La forme exacte que doit prendre le contenu de ce Request-Body est décrit dans le chapitre Opérations.


Response

Lorsque une Response a un Body, ce dernier est toujours un document JSON:

Exemple de réponse:

HTTP/1.1 200 OK
Content-Type: application/json

{
   "@context": "http://www.w3.org/ns/hydra/context.jsonld",
   "@id": "https://example.org/ordnungssystem/fuehrung/dossier-23",
   "@type": "opengever.dossier.businesscasedossier",
   "title": "Titel des Objekts",
   "review_state": "dossier-state-active",
    "...": "..."
}

(Abrégée - les paragraphes suivants contiennent des exemples complets de réponses)

Les keys préfixée avec un @ ont une signification particulère, et ne correspondent pas à un champ sur ce type de contenu. Il s’agit de métadonnées JSON-LD (Linked Data):

Key Signification Description
@context Contexte A toujours la même valeur, une URI vers le contexte Hydra. Cette key n’est actuellement pas de relevante pour l’API de OneGov GEVER.
@id URL univoqiue L’URL univoque vers un objet.
@type Type d’object Le type d’une object. Ce type correspond à l’un des Types de contenus définis ci-dessous et permet au client de savoir à quels champs de quel type s’attendre dans une réponse.

Pour les types d’objets qui ont un Workflow, il existe, en plus des attributs JSON-LD listés ci-dessus, une propriété générique review_state, qui contient le Workflow-State (état de l’objet) actuel:

Key Signification Description
review_state Workflow-State Ce champ contient le Worflow-State actuel si l’objet possède un Workflow.

Voir Workflow pour des détails concernant les Workflows.