====== Xperience WebServices Details ======
===== Xperience Webservice function : =====
The Xperience webservice provides 6 functions. These functions can be queried using HTTP requests. They can be reached using URLs created with the webservice address (http://mkey.services.identificationkey.fr) and a path to a webservice function. The seven functions are:
1. /xperience/addrecord
2. /xperience/getrecord
3. /xperience/getallitems
4. /xperience/getfeedbackscsv
5. /xperience/validate
6. /xperience/updatesddurl
For instance, the URL to call the first function is: http://mkey.services.identificationkey.fr/xperience/addrecord.
These functions return Json objects, and each element returned has a specific name (see Development API).
=====1. addrecord =====
Send a new record of an identification process with xperience mod
**path :** /xperience/addrecord
**parameter** :
* String sddVersion => name of the sdd file used for this identification (ex : 20150113-135241.sdd.xml )
* String sessionid => sessionid with the form : BASEID-WHATEVER (ex : 1916916151212-123SDAD32132 )
* String jsonItemsSelectedmkeyid => json with the items given by the user (ex : [123,43] )
* String urlImageUser => (facultatif)
**returns** :
{ 'status' : 'ok' , 'message' : // , 'spipollsessionid' : 'XXXX-YYYYY' }
**error example :**
{ 'status' : 'Error' , 'message' : 'Xperiense Data Base not found' ,'spipollsessionid' : 'XXXX-YYYYY' }
=====2. getrecord =====
get a history entry
**path :** /xperience/getrecord
**parameter** :
* String sessionid => sessionid with the form : BASEID-WHATEVER (ex : 1916916151212-123SDAD32132)
**returns** :
feed the json return with the list of taxa given by the user
{ "status" : "ok" , "value" : {"urlimage":"none","items":["979","1077"],"sessionid":"0123456789-id666"} }
**error example :**
{ "status" : "error" , "value" : {"message":"Record not found","sessionid":"0123456789-id66"} }
===== 3. getallitems =====
Get list of items in map : Name -> Uniqueid
**path :** /xperience/getallitems
**parameter** :
* String sessionid => sessionid with the form : BASEID-WHATEVER (ex : 1916916151212-123SDAD32132)
**returns** :
{ "status" : "ok" , "value" : {"items":{"Les Sphinx du Pin et mauresque (Sphinx maurorum<\/i>, Sphinx pinastri<\/i>)":"1031","Les Clairons brillants (Korynetes<\/i> et autres)":"812","L'Ecaille marbrée (Callimorpha dominula<\/i>)":"402"},"sessionid":"0123456789-id666"} }
**error example :**
{ "status" : "error" , "value" : {"message":"Record not found","sessionid":"0123456789-id66"} }
===== 4. getfeedbackscsv =====
Get all feedback as CSV in a json return
**path :** /xperience/getfeedbackscsv
**parameter** :
* String baseid => id of the base (ex : 1916916151212)
**returns** :
{ 'status' : 'ok' , 'value' : 'LES MATRICES' }
**error example :**
{ "status":"error" ,"value":{"message":"Xperience Base not found", "baseid":"0123456789"} }
**LES MATRICES :**
* TaxaNames (metadata) : Liste des identifiants des items avec leurs noms
* DescriptorsNames (metadata) : Liste des identifiants des descripteurs avec leurs noms
* StatesNames (metadata) : Liste des identifiants des états avec leurs noms
* TaxaConfusion : Une seule matrice de confusion des taxons
* TaxaDescriptor : Une seule matrice avec en rangé les items et en colonne les descripteurs. Pour chaque descritpeurs, quatres colonnes : nombre d'utilisation, nombre d'erreurs, nombre de doute, nombre d'erreur apres un doute
* StatesConfusionByDescriptor : Un matrice confusion entre les états par descripteur. Avant chaque matrice un ligne avec “DescIDDESCRIPTEUR” (ex : Desc12)
* StatesConfusionByDescriptor : Un matrice confusion entre les états par descripteur et par items. Avant chaque matrice un ligne avec “TaxonIDTAXON;DescIDDESCRIPTEUR” (ex : Taxon43;Desc12)
===== 5. validate =====
Validate a identification process record
**path :** /xperience/validate
**parameter** :
* String item => uniqueid of the item that will be used for the validation ((ex : 32)
* String sessionid => sessionid with the form : BASEID-WHATEVER (ex : 1916916151212-123SDAD32132)
**returns** :
{ "status" : "ok" , "value" : {"message":"record validated","sessionid":"0123456789-id666","taxon":"371"} }
**En cas de taxon non trouvé, on renvoie la liste des taxons possibles, dans “items” :**
{ "status" : "notfound" , "value" : {"items":{"Les Sphinx du Pin et mauresque (Sphinx maurorum<\/i>, Sphinx pinastri<\/i>)":"1031"},"sessionid":"0123456789-id666","taxon":"1213"} }
**error example :**
{ "status" : "error" , "value" : {"message":"Record not found","sessionid":"0123456789-id1","taxon":"1213"} }
===== 6. updatesddurl =====
Update Sdd Url
**path :** /xperience/updatesddurl
**parameter** :
* String baseid => baseid : id of the base (ex : 1916916151212)
* String sddurl => the news sdd url. See the sddmanger (ex: http://nomdomain.com/messdd/
**returns** :
{ 'status' : 'ok' , 'message' : // }
**En cas de taxon non trouvé, on renvoie la liste des taxons possibles, dans “items” :**
{ 'status' : 'error' , 'message' : 'Xperience Base not found' }
**error example :**
{ "status" : "error" , "value" : {"message":"Record not found","sessionid":"0123456789-id1","taxon":"1213"} }