Qu'est-ce que GNooM ?
GNooM est l'acronyme de Guichet NooSFerien pour Machines (prononcer au choix gnome ou génome). Il s'agit d'une interface d'inspiration ReST (Representational State Transfer) destinée aux logiciels et à l'automatisation de traitements en lecture seulement sur la base de données de nooSFere.
L'interface est disponible à cette adresse.
Collections, ressources et propriétés
GNooM traite de toutes les données contenues dans la base de nooSFere (œuvres, livres, auteurs, éditeurs, etc.) sous la forme de ressources. Ces ressources sont des objets constitués d'un ensemble de propriétés ; le nom d'un éditeur, le titre pour un livre ou la date de naissance pour un auteur.
Toutes les ressources d'un même type sont rangées dans une collection et sont accessibles avec une URL propre. La consultation de ces collections est paginée, c'est à dire que seule une partie de la collection peut être lue en une fois. Chaque page fournit des informations pour obtenir les pages précédentes et suivantes. En outre, chaque collection peut être filtrée selon un ensemble de critères qui dépend du type de ressources qu'elle contient.
Requêtes, réponses et entités
Comme toute interface ReST, GNooM repose sur le protocole HTTP. Son utilisation se réduit à une succession de requêtes et de réponses. Cet échange est sans état, c'est à dire que chaque requête est indépendante et peut être reformulée à tout moment.
Parce que l'interface ne donne qu'un accès en lecture seule, seul le verbe GET du protocole HTTP est utilisé. Les critères qui accompagnent une requête sont fournis dans l'URI demandée.
Le succès ou l'erreur d'une requête est fournit sous la forme d'un code de statut HTTP : 200 signifie un succès, 404 l'absence de la page demanée, 400 une erreur dans la requête, etc.
Le format des réponses, le nom des propriétés de chaque ressource est donné dans la langue de l'utilisateur.
Le contenu d'une réponse GNooM est une entité au format JSON. Cette entité peut prendre exactement trois formes différentes, selon qu'elle est la représentation :
- de la page d'une collection ;
- d'une ressource ;
- d'une erreur.
Chaque entité est composé du rappel de l'URI utilisé pour obtenir la présente réponse, et d'un ou plusieurs objets décrivant l'erreur, la ressource ou l'ensemble de ressources correspondant à la requête.
Collections
Une page de collection comprend une liste de ressources, la liste des critères fournis avec la requête qui a généré cette page, et les moyens de naviguer dans la collection au-delà de cette page.
{ "page": [ { ... }, ], "navigation": { "Première page": "...", "Page précédente": "...", "Page suivante": "...", "Dernière page": "..." }, "uri": "https://www.noosfere.org/gnoom/v1?auteur=wul", "requête": { ... } }
Ressources
{ "ressource": { ... }, "uri": "https://www.noosfere.org/gnoom/v1?auteur=wul", }
Format des erreurs
Collections
Exemples
- Obtenir toutes les œuvres de Stefan Wul
- https://dsoulayrol.noosfere.org/index.php/gnoom/v1?auteur=wul