Requêtes JSON

La principale possibilité d'interrogation d'un moteur Scrutari se base sur le protocole JSON, qui est un protocole de définition d'objets utilisés en Javascript notamment (la plupart des langages traitant d'objets disposent de bibliothèques pour traiter le format JSON). L'avantage du format JSON, c'est qu'il permet d'obtenir simplement des objets directement manipulables dans le langage utilisé.

L'interrogation du moteur en mode JSON se fait en passant des paramètres via l'URL {adresse du moteur}/json.

Cette requête a un paramètre obligatoire, le paramètre type qui indique le type de la requête effectuée. Chaque type de requête définit ses propres paramètres et retourne ses propres objets au format JSON.

Les différentes requêtes

JSON-P et le paramètre « callback »

Pendant longtemps, il n'était pas possible de faire une requête en Javascript sur une URL d'un autre nom de domaine (Same Origin Policy). Cette règle interdisait donc l'utilisation de JSON en Ajax, sauf à héberger le script sur le même serveur que Scrutari. C'est pour détourner cette limitation qu'a été inventé le protocole JSON-P : celui-ci consiste tout simplement à transmettre l'objet JSON en tant qu'argument d'une fonction, le nom de cette fonction étant passé au serveur avec le paramètre callback.

Les requêtes via l'URL {adresse du moteur}/json reconnaissent toutes la présence de ce paramètre callback et, s'il est présent, renverront la réponse au format JSON-P.

Une bibliothèque Javascript comme JQuery possède un mécanisme de traitement de JSON-P qui rend son utilisation très simple, il suffit d'indiquer que la requête Ajax est de type « jsonp » et JQuery se charge de la définition du paramètre callback.

Cette utilisation de JSON-P n'est plus nécessaire si le serveur autorise explicitement cet accès trans-domaine. C'est le cas de toutes les requêtes Json du serveur Scrutari qui envoient l'entête HTTP : Access-Control-Allow-Origin: *

serveurscrutari/json.txt · Dernière modification: 2015/03/31 15:55 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0