abes-esr / abes-webservices

Espace destiné à recenser et suivre les idées, besoins, fonctionnalités, bug concernant les web services de l'Abes
4 stars 0 forks source link

Inconsistance de la clé sudoc.query.result sur le web service iln2rcr #2

Open kerphi opened 5 years ago

kerphi commented 5 years ago

La structure JSON de retour est inconsistante dans le cas où on obtient en retour un unique RCR ou plusieurs RCR.

Exemple de JSON retourné avec plusieurs RCR : https://www.idref.fr/services/iln2rcr/4&format=text/json

{
  "sudoc": {
    "query": {
      "iln": 4,
      "result": [
        {
          "library": {
            "rcr": "040702201",
            "name": "Université d'Aix-Marseille",
            "shortname": "AIX-MARSEILLE1-IUT Digne",
            "address": "Rue Pasteur 04000 Digne-les-bains FR",
            "web": "http://gsite.univ-provence.fr/",
            "type": "Bibliothèque d'institut ou de département universitaire",
            "latitude": 44.091451,
            "longitude": 6.227104
          }
        },

Exemple de JSON retourné avec un seul RCR : https://www.idref.fr/services/iln2rcr/9&format=text/json

{
  "sudoc": {
    "query": {
      "iln": 9,
      "result": {
        "library": {
          "rcr": "973022101",
          "name": "Université de Guyane",
          "shortname": "CAYENNE-BU",
          "address": "Campus de Troubiran, 2091 route de Baduel 97349 Cayenne GF",
          "web": "https://www.univ-guyane.fr/campus/bibliotheque/",
          "type": "Bibliothèque universitaire",
          "latitude": 4.9227,
          "longitude": -52.32689999999999
        }
      }
    }
  }
}

L'inconsistance est située sur la clé sudoc.query.result qui dans le premier cas contient un tableau de RCR et dans le second cas contient directement la structure du RCR.

Pour que les programmes utilisant ce web service n'aient pas besoin de parcourir la réponse JSON de deux façon différentes, il serait attendu que la clé sudoc.query.result contienne comme valeur systématiquement un tableau, même dans le cas où un unique RCR est retourné.

Ce comportement est observé sur plusieurs web service et on retrouve l'inconsistance dans le cas où le web service merged retourne 1 ou plusieurs PPN

L'équipe Abes travaillant sur l'application ITEM a observé ce comportement et a adapté ses programme pour gérer les deux cas.