Outils pour utilisateurs

Outils du site


cours:informatique:dev:decouverte_api_rest:140_transmission_json

Notes et transcriptions du cours Débutez avec les API REST proposé par esri France disponible sur la plateforme Openclassrooms.

Transmission des données en JSON

Lorsqu'on exécute une requête HTTP la réponse retournée est une représentation de la ressource, elle peut se présenter sous différentes formes :

  • HTML
  • XML
  • CSV
  • JSON

Cela fait parti des bonnes pratiques pour qu'une API soit de type REST.

JSON est un format qui permet de stocker les données d'une manière organisée et lisible. Les données sont présentées dans un format textuel constitué de paires clé/valeur.

Pour comprendre ce concept, prenons l'exemple d'un objet JSON représentant un film.

  • Une clé est une propriété du film : son titre, sa date de sortie ou son réalisateur ;
  • Pour la clé Titre, la valeur associée peut-être la chaîne de caractères “Interstellar”.
  • Ce qui est intéressant dans le JSON c'est que la valeur d'une clé peut, elle même, être un objet. Dans notre exemple le réalisateur du film peut être un objet JSON contenant les clés Nom, Prénom etc.
{
  "Titre": "Interstellar",
  "Date de sortie": "5/11/2014",
  "Réalisateur": {
    "Prénom": "Christopher",
    "Nom": "Nolan"
  }
}

Ce format est très flexible, simple à lire, à comprendre et utilisable dans n'importe quel langage de programmation.

Structure de la donnée

Une des clés de l'API REST est la représentation de la ressource (JSON, XML,etc.). Allons voir ce qui se cache derrière les termes JSON et XML.

Découvrez JSON

JSON est l’acronyme de JavaScript Object Notation.

Il s’agit d’un format de fichier permettant de stocker les données de manière organisée et lisible. Il est utilisé pour représenter des structures de données et des objets simples dans un code qui repose sur un navigateur web. Les données sont présentées dans un format textuel constitué de paires “clé – valeur”.

Ci-dessous une exemple de code JSON

{
    "currentVersion":10.3,
    "folders":
    [
        "Canvas",
        "Demographics",
        "Elevation",
        "Ocean",
        "Polar",
        "Reference",
        "Specialty",
        "Utilities"
    ],
    "services":
    [
        {
            "name":"NatGeo_World_Map",
            "type":"MapServer"
        },
        {
            "name":"USA_Topo_Maps",
            "type":"MapServer"
        },
        {
            "name":"World_Imagery",
            "type":"MapServer"
        },
        {
            "name":"World_Physical_Map",
            "type":"MapServer"
        },{
            "name":"World_Shaded_Relief",
            "type":"MapServer"
        },
        {
            "name":"World_Street_Map",
            "type":"MapServer"
        },
        {
            "name":"World_Terrain_Base",
            "type":"MapServer"
        },
        {
            "name":"World_Topo_Map",
            "type":"MapServer"
        }
    ]
}

Sur ce code, vous pouvez voir :

  • Les clés avant les : ; ce sont toujours des chaînes de caractères ;
  • Les valeurs de l'autre côté des : ; elles peuvent être de plusieurs types, des chaînes de caractères, mais aussi des nombres, des tableaux, des objets…

À l'instar de XML, JSON est indépendant des langages, et peut se combiner avec nombre de ces derniers, dont C++, Java, Python. Toutefois, contrairement à XML, JSON n'est qu'un mode de représentation des structures de données, par opposition à un langage de marquage intégral.

Les documents JSON sont relativement légers et leur traitement côté serveur est donc rapide.

Le XML

XML signifie eXtensible Markup Language : en français, c'est un langage de balisage extensible.

Le XML est un langage de balisage, il permet de décrire des informations pour facilement les communiquer entre plusieurs applications. Il est dit extensible car il permet de décrire d'autres langages qui dérivent du XML et qui auront leurs propres balises et règles.

Ce format de fichier est conçu pour transmettre des informations entre applications informatiques.

On utilise des balises pour délimiter les informations, par exemple :

<NOM>ARCGIS</NOM>
<CREATEUR>Jack Dangermond</CREATEUR>

Comme vous le voyez, les balises <NOM> ou <CREATEUR> permettent de délimiter les informations correspondant au nom et au créateur.

  • <NOM> annonce le début des informations concernant le nom.
  • </NOM> annonce la fin des informations concernant le titre (notez le slash /).

Un des avantages du XML est que c'est l'un des rares formats qui peuvent être lus à la fois par un humain et par un ordinateur.

JSON ou XML : lequel choisir pour l'API REST ?

Les 2 formats JSON et XML peuvent être utilisés pour recevoir des données d'un service web.

Vous avez la possibilité de traduire un besoin soit avec JSON, soit avec XML.

XML est plus difficile à analyser que JSON : il est nécessaire d'avoir un analyseur XML.

  • JSON peut être analysé dans un objet JavaScript standard ;
  • JSON est plus rapide car étant moins verbeux, son analyse est plus simple.

Transmission de l'information

Pour les API REST, les communications entre le client et le serveur se font via le protocole HTTP. Généralement les données retournées par le serveur sont formatées avec JSON.

Transmission des paramètres dans l'URL

Comment transmettre des paramètres du client au serveur ?

Eh bien, en utilisant l'URL !

3 symboles sont utilisés pour ajouter une chaîne de paramètres à une URL :

? Concatène l'URL et la chaîne de paramètres
& Sépare les paramètres multiples
= Assigne une valeur à un paramètre.
http://server.domain/api?param1=value1&param2=value2&param_n=value_n

◁ Précédent | ⌂ Retour au sommaire | Suivant ▷

cours/informatique/dev/decouverte_api_rest/140_transmission_json.txt · Dernière modification : 2023/09/23 12:15 de yoann