Web Service de saisie d'image et d'observations


Service de saisie d'observations et d'images dans la base du CEL.

Il est possible pour une application tierce d'envoyer des observations au Carnet en Ligne à l'aide du web service  CelWidgetSaisie. Chaque observation peut également être associée à une ou plusieurs images. Images et observations peuvent aussi être associées à des mots-clés ou contenir des champs supplémentaires.

URLs

URL de saisie dans la base de production : http://api.tela-botanica.org/service:cel:CelWidgetSaisie

URL de saisie dans la base de test : http://api-test.tela-botanica.org/service:cel:CelWidgetSaisie

Paramètres

Le web service s'attend à recevoir des informations telles que les enverrait un formulaire du type application/x-www-form-urlencoded ou multipart/formdata par une requête de type POST.

L'envoi de plusieurs observations se fait en envoyant un tableau d'observations construites chacune dans le format décrit plus bas :

requete = [obsId1,
  • obsId2,
  • obsId3,
  • obsId4]

Envoyer le tableau 'requete' au service résultera en la saisie de 4 observations (et éventuellement d'image si celle-ci sont bien formées).

Paramètres principaux

Les différentes observations doivent être envoyées sous forme d'un tableau indexé de la manière suivante : obsId1, obsId2, etc.

Les paramètres suivants sont communs à toutes les observations et sont envoyés en dehors de la liste :
  • utilisateur : contient un sous-tableau avec le détail sur l'utilisateur :
    • id_utilisateur : l'id de l'utilisateur dans la base de Tela Botanica, si celui-ci est inscrit. Peut rester vide si l'id est inconnu ou si l'utilisateur n'est pas inscrit
    • courriel : courriel de l'utilisateur
    • prenom : prénom de l'utilisateur
    • nom : nom de l'utilisateur
  • projet : projet ou mot-clé à associer à l'observation
  • tag-img : une chaîne de caractères contenant les mots-clés à associer à l'ensemble des images, séparés par des virgules
  • tag-obs : une chaîne de caractères contenant les mots-clés à associer à l'ensemble des observations, séparés par des virgules

Chaque définition d'observation est un tableau contenant les index et les informations suivantes :
  • nom_sel : nom saisi associé à l'observation. Ex : 'Acer monspessulanum L.'
  • num_nom_sel : numéro nomenclatural du nom sélectionné. Ex : '182'
  • nom_ret : nom retenu associé à l'observation. Ex : 'Acer monspessulanum L.'
  • num_nom_ret : numéro du nom retenu associé à l'observation. Ex : '182'
  • num_taxon : numéro taxonomique du nom associé à l'observation. Ex : '7544'
  • famille : famille associée au nom saisi. Ex : 'Sapindeaceae'
  • referentiel : référentiel associé au nom indiqué dans l'observation, de la forme "code:version". Ex : 'bdtfx:v1.01'
  • date : date de l'observation au format jj/mm/aaaa. Ex : '04/01/2013'
  • notes : notes supplémentaires associées à l'observation. Ex : 'Essai de saisie dans le web service du cel'
  • commune_nom : nom de la commune associée à l'obs. Si possible, le nom officiel (cf. code INSEE). Ex: 'Montpellier'
  • commune_code_insee : code INSEE de la commune (ne pas confondre avec le code postal !). Ex: '34090'
  • lieudit : lieu-dit associé. Ex : 'Arche du Peyrou'
  • station : station associée. Ex : 'bord de l'arche, coté droit'
  • milieu : milieu où la plante a été observée. Ex : 'fissure de mur'
  • latitude : latitude au format décimal. Ex : '43.3'
  • longitude : longitude au format décimal. Ex : '3.25'

Paramètres optionnels d'une observation

Images
  • image_b64 : peut contenir une chaîne encodée en base 64 avec le contenu de l'image à associer à l'obs, peut être un tableau dans le cas de plusieurs images envoyées en même temps
Attention, le code base 64 de chaque image doit être préfixé par la chaîne "data:image/b64;base64,"
  • image_nom : contient soit une chaîne avec le nom de l'image, ou bien un tableau de chaînes avec les noms des images dans le même ordre que le tableau précédent
  • image_tag : contient une chaîne désignant les tags à associer à l'image ou bien un tableau de chaînes contenant des mots-clés à associer spécifiquement pour chaque image (ici aussi, dans le même ordre que celui des images du tableau 'image_b64')

Champs supplémentaires d'observation
Une observation peut accueillir des champs supplémentaires, non visibles par les utilisateurs pour le moment, dont le nom et la valeur sont au choix de l'utilisateur et sont précisés en ajoutant l'index suivant :
  • obs_etendue : contient un tableau de tableaux. Pour chaque, champ étendu, le sous tableau se compose de 3 entrées :
  • cle : indique le mot clé (le tag) représentant le champ. Ce tag ne doit pas contenir de caractères spéciaux ou accentués.
  • label : contient un texte nommant le champ. Peut servir pour la création d'un formulaire comme nom du champ.
  • valeur : la valeur du champ (max 255 caractères)

Exemple de POST

projet=WidgetFlorileges,Sauvages&
tag-obs=florileges&
tag-img=&
utilisateur[id_utilisateur]=423&
utilisateur[prenom]=Jean-Pascal&
utilisateur[nom]=MILCENT&
utilisateur[courriel]=jpm@tela-botanica.org&
obsId1[date]=10/09/2013&
obsId1[notes]=Test&
obsId1[station]=Test&
obsId1[latitude]=43.626&
obsId1[longitude]=3.86892&
obsId1[commune_nom]=Montpellier&
obsId1[commune_code_insee]=34172&
obsId1[nom_sel]=Achillea millefolium L.&
obsId1[num_nom_sel]=365&
obsId1[nom_ret]=Achillea millefolium L.&
obsId1[num_nom_ret]=365&
obsId1[num_taxon]=8527&
obsId1[famille]=Asteraceae&
obsId1[referentiel]=bdtfx:1.01&
obsId1[milieu]=haie&
obsId1[image_nom][]=000_016_254_l.jpg&
obsId1[obs_etendue][0][cle]=perceptionTechnicien&
obsId1[obs_etendue][0][label]=Perceptions par l'équipe&
obsId1[obs_etendue][0][valeur]=discrète&
obsId1[obs_etendue][1][cle]=latitudeDebutRue&
obsId1[obs_etendue][1][label]=Latitude du début de la rue&
obsId1[obs_etendue][1][valeur]=43.62595&
obsId1[obs_etendue][2][cle]=longitudeDebutRue&
obsId1[obs_etendue][2][label]=Longitude du début de la rue&
obsId1[obs_etendue][2][valeur]=3.86860