📎 API Documentation
API documentation as generated by the code is:
http://data.agroportal.eu/documentation (exemples are not from AgroPortal)
API request examples
Vincent Emonet, Clement Jonquet - Septembre 2015
Administration via l'UI ou l'API, mais sans accès au serveur
Comment lire la documentation
Paramètres dans l'URL
Gestion des utilisateurs
Exemple de récupération d'un utilisateur
Exemple création d'un utilisateur
Exemple modification du rĂ´le d'un utilisateur
Exemple de suppression d'un utilisateur
Gestion des groupes et des catégories
Exemple de récupération d'une catégorie
Exemple de création d'une catégorie
Exemple de récupération d'un groupe
Exemple de création d'un groupe
Exemple de suppression d'une catégorie ou d'un groupe
Exemple d'ajout d'une ontologie dans un groupe et une catégorie
Gestion des ontologies et des soumissions
Exemple de récupération d'une ontologie
Exemple de récupération d'une soumission pour une ontologie
Exemple de récupération d'une classe d'une ontologie
Exemple de création d'une ontologie
Exemple de création d'une soumission
Exemple de suppression d'une ontologie
Exemple de modification d'une ontologie
Ontologie sans relation de subClassOf
Debugger une ontologie
Retirer la possibilité de download d'une ontologie
Gestion d'une ontologie privée
Exemple de création d'une ontologie privée visible
Restricting download of an ontology
Gestion des mappings
Exemple de récupération d'un mapping
Exemple d'ajout d'un mapping (minimum d'information)
Exemple d'ajout d'un mapping (maximum d'information)
Autres exemples de récupération des mappings
Exemple de suppression d'un mapping
Exemple de bulk load d'un fichier de mapping
Gestion des projets
Exemple de récupération d'un projet
Exemple de création d'un projet
Administration avancée (i.e., via accès au server)
Principaux projets de développement
Architecture du serveur
Emplacement des logs
Déployer des slices
Ajouter une slice
Supprimer une slice
Editer une slice
Mettre Ă jour les slices en fonction des groupes
Paramètre REST pour s'adresser seulement à une slice
Redémarrer le serveur
Commandes Linux utiles
Détails des sections
Comment lire la documentation
Exemple avec la documentation pour la manipulation de la ressource utilisateur: http://data.agroportal.lirmm.fr/documentation#User
La partie HTTP Methods for Resource présente les différentes opérations que l'on peut faire sur la ressource (dans ce cas les users) en donnant le verbe HTTP et le path URL à utiliser.
Par exemple pour obtenir les informations sur tous les users, faire un GET sur : http://data.agroportal.lirmm.fr/users
Mais pour obtenir les informations d'un seul user il faut remplacer la variable ":username" dans le path par le username du user dont on veut les informations : http://data.agroportal.lirmm.fr/users/jonquet
La partie Resource Description présente les différents attributs de la ressource. Cela permet de savoir quels attributs sont obligatoires (username et email pour user), quels attributs sont affichés par défaut, et lesquels sont présentés sous forme de liste (ici role, subscription et customOntology).
Paramètres dans l'URL
Quand vous parcourez le service REST dans votre navigateur il est possible d'avoir recours à des paramètres dans l'URL. Pour donner son apikey par exemple ou préciser que l'on veut un affichage détaillé de tous les attributs d'une ressource (tous les attributs ne sont pas affiché par défaut). Par exemple:
http://data.agroportal.lirmm.fr/users?apikey=72574b5d-b741-42a4-b449-4c1b64dda19a&display=all
Gestion des utilisateurs
Peut être fait manuellement par chaque utilisateur via l'interface graphique. Peut également être fait via l'API REST.
Exemple de récupération d'un utilisateur
curl -X GET
-H "Authorization: apikey token=$APIKEY"
http://data.agroportal.lirmm.fr/users/jonquetExemple création d'un utilisateur
curl -X PUT
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{ "email": "$MYMAIL", "passwordHash": "$MYPASSWORD"}'
http://data.agroportal.lirmm.fr/users/$MYUSERNAMEExemple modification du rĂ´le d'un utilisateur
curl -X PATCH
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{"role": ["LIBRARIAN"]}'
http://data.agroportal.lirmm.fr/users/jonquetExemple de suppression d'un utilisateur
curl -X DELETE
-H "Authorization: apikey token=$APIKEY"
http://data.agroportal.lirmm.fr/users/jonquetA noter qu'il y a 2 types d'utilisateurs :
Les LIBRARIAN : utilisateur standard
Les ADMINISTRATOR : droits d'administrateur (droit de modification sur n'importe quelle ressource)
De plus, un utilisateur peut avoir des droits de gestion spécifique pour une ontologie. Il est alors administrateur de cette ontologie seulement.
Gestion des groupes et des catégories
La gestion des groupes et de catégories ne peut se faire que via l'API. L'affectation d'une catégorie à une ontologie peut se faire via l'interface graphique (au moment de la création de l'ontologie ou en l'éditant). Si une hiérarchie de catégorie existe, il faut explicitement ajouter toutes les catégories. Cependant l'affectation d'un groupe à une ontologie ne peut être fait que via l'API soit par un Administrator ou par l'administrateur de l'ontologie.
Exemple de récupération d'une catégorie
curl -X GET
http://data.agroportal.lirmm.fr/categories/CO_010-089Exemple de création d'une catégorie
curl -X PUT
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{ "acronym": "CO_010-089",
"name": "010-089 General Germplasm",
"description": "This category includes ..."}'
http://data.agroportal.lirmm.fr/categories/CO_010-089Exemple de récupération d'un groupe
curl -X GET
http://data.agroportal.lirmm.fr/groups/LOVINRAExemple de création d'un groupe
curl -X PUT
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{ "acronym": "LOVINRA",
"name": "INRA Linked Open Vocabularies",
"description": "Description please"}'
http://data.agroportal.lirmm.fr/groups/LOVINRAExemple de suppression d'une catégorie ou d'un groupe
curl -X DELETE
-H "Authorization: apikey token=$APIKEY"
http://data.agroportal.lirmm.fr/categories/EXEMPLE
curl -X DELETE
-H "Authorization: apikey token=$APIKEY"
http://data.agroportal.lirmm.fr/groups/EXEMPLEExemple d'ajout d'une ontologie dans un groupe et une catégorie
curl -X PATCH
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{"group": ["LOVINRA"], "hasDomain": ["Crop"]}'
http://data.agroportal.lirmm.fr/ontologies/CO_125
curl -X PATCH
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{"group": ["SEMANDIV"], "hasDomain": ["NATRES","TECH"]}'
http://data.agroportal.lirmm.fr/ontologies/ANAEETHESPour chaque ontologie du groupe, passer la commande précédente. Il est plus facile de passer par un script pour déclarer toutes les ontologies du groupe en une seule fois (voir les exemples de scripts).
Pour retirer une ontologie d'un groupe ou d'une catégorie il faut effectuer à nouveau un PATCH en mettant les nouveaux groupes ou catégories auquel l'ontologie appartient, cela écrasera la configuration précédente.
On peut voir les groupes disponibles avec : http://data.agroportal.lirmm.fr/groups
Gestion des ontologies et des soumissions
AgroPortal gère les versions d'ontologies de la façon suivante : Un objet ontology est créé pour chaque ontologie du portail. C'est un ensemble de métadonnées décrivant l'ontologie et qui ne change pas d'une version à l'autre (e.g., l'acronyme d'une ontologie qui sert d'identifiant local). Plusieurs soumissions (submission) peuvent être créées pour une ontologie donnée. C'est la soumission qui va contenir le véritable contenu de l'ontologie en plus de quelques autres métadonnées.
Exemple de récupération d'une ontologie
curl -X GET
http://data.agroportal.lirmm.fr/ontologies/CO_125Exemple de récupération d'une soumission pour une ontologie
curl -X GET
http://data.agroportal.lirmm.fr/ontologies/CO_125/submissions/1Exemple de récupération d'une classe d'une ontologie
curl -X GET
http://data.agroportal.lirmm.fr/ontologies/BIOREFINERY/classes/http%3A%2F%2Fopendata.inra.fr%2Fresources%2FBIORAF%23spruceExemple de création d'une ontologie
L'ajout d'une ontologie (ou d'une soumission) peut être réalisé via l'interface graphique: http://agroportal.lirmm.fr/ontologies/ > "Submit New Ontology"
Ou sur la page d'une ontologie sur l'onglet "Edit ontology information" ou "Edit submission information" pour les users qui ont le rôle Administrator ou les users qui sont administrateur de cette ontologie. Dans "Edit ontology information" et à la création de l'ontologie il est possible d'attribuer des "Administrators" à une ontologie.
L'administration d'ontologie offert par l'interface graphique est relativement complète. Donc, il est conseillé d'effectuer l'ajout et l'édition des ontologies ou soumissions via l'interface graphique. Hormis pour l'affectation à un groupe ou une catégorie (voir plus haut) qui ne peut être fait via l'UI.
Exemple de requĂŞte :
curl -X PUT
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{ "acronym": "MO",
"name": "Movie Ontology",
"administeredBy": ["jonquet"]}'
http://data.agroportal.lirmm.fr/ontologies/MOExemple de création d'une soumission
Ajout d'une nouvelle soumission Ă une ontologie (nouvelle version de l'ontologie)
curl -X POST
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{ "contact": [{ "name": "Clément Jonquet",
"email": "jonquet@lirmm.fr"}],
"ontology": "http://data.agroportal.lirmm.fr/ontologies/MO",
"hasOntologyLanguage": "OWL",
"released": "2013-01-01T16:40:48-08:00",
"pullLocation":"http://www.movieontology.org/2010/01/movieontology.owl"}'
http://data.agroportal.lirmm.fr/ontologies/MO/submissionsNote : dans cet exemple seulement le strict minimum des informations requises a été donné. Pour plus d'informations sur les attributs de la ressource : http://data.agroportal.lirmm.fr/documentation#OntologySubmission
Exemple de suppression d'une ontologie
Suppression d'une ontologie (cela supprime automatiquement toutes les soumissions qui y sont rattachées)
curl -X DELETE
-H "Authorization: apikey token=$APIKEY"
http://data.agroportal.lirmm.fr/ontologies/MOExemple de modification d'une ontologie
Modification des métadonnées d'une ontologie. Ici on désigne "admin" et "jonquet" comme administrateurs de l'ontologie.
curl -X PATCH
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{ "adminstratedBy": ["admin", "jonquet"]}'
http://data.agroportal.lirmm.fr/ontologies/MO/Exemple de modification d'une soumission
curl -X PATCH
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{ "homepage": "http://www.myhomepage.com",
"includedInDataCatalog":
["https://biosharing.org/bsg-s000139",
"http://aber-owl.net/ontology/PR",
"http://bioportal.bioontology.org/ontologies/PR",
"http://www.obofoundry.org/ontology/pr.html",
"http://www.ontobee.org/browser/index.php?o=pr",
"http://www.ebi.ac.uk/ols/ontologies/pr",
"http://vest.agrisemantics.org/content/protein-ontology"]
}'
http://data.agroportal.lirmm.fr/ontologies/XX/submissions/XXInformations sur les propriétés du modèle de métadonnées: http://data.agroportal.lirmm.fr/submission_metadata
Ontologie sans relation de subClassOf
AgroPortal est également capable de prendre en charge des ontologies qui n'ont pas de relations de rdfs:subClassOf (l'absence de ses relations entraîne des problèmes quand le service essaie de mettre en place la hiérarchie, pour afficher l'arbre des concepts dans lUI par exemple). Pour cela il faut préciser via l'API REST que l'ontologie est "flat".
curl -X PATCH
-H "Content-Type: application/json"
-H "Authorization: apikey token=$APIKEY"
-d '{"flat": true}'
http://data.agroportal.lirmm.fr/ontologies/MODebugger une ontologie
Il se peut qu'une ontologie soulève des bugs quand elle est ajoutée
Il est possible d'avoir des informations sur les ontologies qui ont eu des problèmes lors de la soumission en se connectant sur un compte administrateur et en allant dans l'onglet "Admin". Cette interface permet de reset les caches du site et de voir les ontologies qui ont eu un problème à la soumission.
Il est ensuite possible de v