====== 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"} }