Les offres
Les offres représentent la présence d'une configuration sur les serveurs de diffusion derrière un point d'accès. C'est suelement une fois l'offre existante que les données sont réellement consultables par des consommateurs.
D'un point de vue modèle, une offering appartient à un datastore.
Création d'une offre
Une offre ne peut etre créée qu'entre une configuration et un point d'accès de même type. Si une offre existe déjà entre ces deux entités, la création est refusée. La création d'une offre est également appelée publication.
La création se fait via l'appel POST /datastore/{id}/configurations/{id}/offerings
. Il est possible de préciser des permissions auxquelles ajouter automatiquement cette nouvelle offre.
Une fois l'offre créée, la configuration utilisée passe en statut PUBLISHING
. Si tous les agents de publication concernés parviennent à configurer le service de diffusion associé, l'offre passera en statut PUBLISHED
. Si un échec survient, elle passera en UNSTABLE
.
L'offre peut être désactivée : aucune action de dépublication n'est faite, mais sa consommation sera bloquée (lors du contrôle des accès). On peut également la déclarer comme "open", cela permettra sa consommation même sans permission et accès.
Suppression d'une offre
Une offre en statut PUBLISHED
peut être supprimée via l'appel DELETE /datastore/{id}/offerings/{id}
. L'entité passe en statut UNPUBLISHING
puis est totalement supprimée du référentiel en cas de succès (UNSTABLE
sinon). Si elle était la dernière offre utilisant la configuration, cette dernière passe en statut UNPUBLISHED
. On parle également de dépublication.
Parcours des offres
Récupérer une liste de offres
L'API GET /datastore/{id}/offerings
permet de récupérer l'ensemble des offres (avec pagination) disponibles dans l'entrepôt. Pour cibler plus précisément les offres voulues, plusieurs filtres, qui se cumulent, sont possibles :
type=[type de offre]
: permet de préciser le type voulu. Tous les types par défaut.endpoint=[identifiant]
: identifiant du point d'accès lié aux offres vouluesstatus=[statut de offre]
: permet de préciser le statut voulu. Tous les statuts par défaut.
Voir les informations d'une offre
Pour obtenir toutes les informations disponibles sur une offre, on utilise l'API GET /datastore/{id}/offerings/{id}
.
Les transitions entre les différents statuts sont détaillées ici