SIGMAG - N°33 - Juin 2022 - 50

PERSPECTIVES
EN DEV, QU'EST-CE QUE LE « REST » ?
SI VOUS VOUS ORIENTEZ VERS DES WEBSERVICES D'ENVIRONNEMENT ARCGIS, VOUS CONSOMMEREZ UNE API REST.
AVEC CE PETIT MOT « REST », VOUS LIREZ DANS LES URL D'ACCÈS AUX DONNÉES. DÉCRYPTAGE.
REST pour « Representational State Transfer » est en résumé basé
sur la représentation directe des données. Les fonctionnalités
exposées ne produisent pas des transactions, mais interrogent des
ressources pour représenter l'état des données. Pour respecter les
règles de l'art, on produira une API RESTful qui nécessite quelques
notions particulières par rapport à d'autres types d'API.
Il y a tout d'abord la notion de Client-Serveur. C'est un « serveur »
distant qui met à disposition via un protocole http une API
consommée par une application « client ». Évident, obligatoire.
La grande notion d'uniformité. Chaque appel à l'API doit avoir
la même forme, produire le même comportement et répondre
toujours de la même manière. Elle inclut l'URI (Unique Ressource
Identifier) de la requête http. Par exemple http://api.monsig.com/
buildings pour avoir la liste des bâtiments. /buildings/1 pour le
bâtiment n°1, ou encore /buildings/1/floors/1 pour les détails du
1er étage. Elle inclut les méthodes http pour les actions : GET,
POST, PUT, DELETE. Pour illustrer, GET /entités retourne toutes
les géodonnées. GET /entités/1 retourne les détails de l'entité avec
l'id n°1. POST sert à créer une nouvelle entité, PUT aux mises à jour,
et DELETE pour effacer. Chaque appel http à l'API REST ne visera
que la ressource en question et n'effectuera pas de transactions.
Pour reproduire une transaction, il faudra enchainer les fonctions
GET, puis POST ou PUT.
Le développeur de l'API sera attentif à l'idempotence de ces
fonctions ! Une même fonction répétée plusieurs fois avec les
mêmes paramètres ne changera qu'une fois l'état des données. Le
code de retour peut changer si on tente de supprimer plusieurs fois
la même donnée, mais pas l'état des données.
Le corps de la requête se nomme parfois « payload ». Il contient
les données structurées transmises. Votre développeur dira qu'il
faut modifier le payload dans le POST de l'API RESTful ; on se
comprend ! Il sera souvent au format JSON. On peut aussi avoir
plusieurs formats dans un même payload si vous les définissez dans
les en-têtes Content-Type et Accept. Justement, les en-têtes sont
les métadonnées de votre API. On y passera aussi des informations
SIGMAG
50
d'authentification ou encore de langue. Cette uniformité impose
enfin le « code de status ». Chaque opération effectuée par l'API
doit répondre un code de status http le plus explicite possible. On
retrouve le code 200 pour une opération avec succès, 404 pour une
ressource introuvable, etc. On évitera de répondre un code 200 avec
un message du type « erreur no xxx... » !
La notion Stateless (sans-état) signifie qu'aucune information
n'est conservée sur le serveur entre deux appels successifs à l'API.
Par exemple pour l'authentification, si une session utilisateur est
maintenue sur le serveur, c'est un mode stateful. En stateless, on
passera un jeton (token) et toute autre donnée nécessaire à chaque
requête http. Cela permet de déployer facilement une API sur
plusieurs machines ou faire du scaling automatisé.
La contrainte de mise en cache est nécessaire pour optimiser
les performances au niveau de la récupération des données.
Une même requête http avec fonction GET exécutée plusieurs
fois devrait accéder aux données en cache plutôt qu'interroger
systématiquement la ressource. Évoquons rapidement le système
à plusieurs niveaux. Si l'API tourne derrière d'autres composants
comme un serveur de cache, un proxy, un répartiteur de charge, etc.
Le client qui exécute les requêtes ne doit pas y voir de différence.
Si vous êtes DE nouveaux développeurs d'API REST au lieu de SOAP,
ces éléments devraient rapidement s'incruster dans vos habitudes.
Si vous êtes consommateur d'API REST dans vos applications, ou
exploitant d'un environnement SIG, vous verrez d'un autre œil ce
grand nombre de lignes de codes pour
sélectionner et mettre à jour une entité
géographique là où d'autres systèmes
le réalisent en un appel http avec une
transaction. L'avantage du REST est
de maitriser en détail l'exécution de
nos flux tout en étant scalable, léger et
performant sur le cache.
DANIEL RIBEIRO
DIRECTEUR DE GEODATASOLUTIONS

SIGMAG - N°33 - Juin 2022

Table des matières de la publication SIGMAG - N°33 - Juin 2022

ÉDITO - L'effet domino
SOMMAIRE
ESSENTIEL
- Coup de coeur pour le Géo événement
- Ouverture de l’enquête normes et standards
- Joyeux arcOrama !
- L’IPR publie le 10e Mos
- Un E-book sur le Jumeau numérique
AGENDA
PRATIQUE - Sicoval : un SIG dynamique et collégial
ENQUÊTE - La Défense mise sur la Géo et toutes les intelligences
DOSSIER - Le SIG place le vélo sur les bonnes pistes
GUIDE
- Le réseautage à la portée de tous
- Pas à pas : analyse de liens avec ArcGIS Insights
- Concrètement dans l’air du temps
- État de Genève : une migration bien planifiée
- Les à-côtés
DÉCOUVERTE - Pézenas célèbre Molière et Boby Lapointe
MÉTIER
- Se former après le boom de la Covid
- Portrait de Guillaume Malaterre
- Les offres d’emploi
PERSPECTIVES - En dev, qu’est-ce que le « Rest » ?
SIGMAG - N°33 - Juin 2022 - 1
SIGMAG - N°33 - Juin 2022 - 2
SIGMAG - N°33 - Juin 2022 - ÉDITO - L'effet domino
SIGMAG - N°33 - Juin 2022 - SOMMAIRE
SIGMAG - N°33 - Juin 2022 - 5
SIGMAG - N°33 - Juin 2022 - - Coup de coeur pour le Géo événement
SIGMAG - N°33 - Juin 2022 - - Joyeux arcOrama !
SIGMAG - N°33 - Juin 2022 - - L’IPR publie le 10e Mos
SIGMAG - N°33 - Juin 2022 - - Un E-book sur le Jumeau numérique
SIGMAG - N°33 - Juin 2022 - AGENDA
SIGMAG - N°33 - Juin 2022 - 11
SIGMAG - N°33 - Juin 2022 - PRATIQUE - Sicoval : un SIG dynamique et collégial
SIGMAG - N°33 - Juin 2022 - 13
SIGMAG - N°33 - Juin 2022 - ENQUÊTE - La Défense mise sur la Géo et toutes les intelligences
SIGMAG - N°33 - Juin 2022 - 15
SIGMAG - N°33 - Juin 2022 - 16
SIGMAG - N°33 - Juin 2022 - 17
SIGMAG - N°33 - Juin 2022 - 18
SIGMAG - N°33 - Juin 2022 - 19
SIGMAG - N°33 - Juin 2022 - DOSSIER - Le SIG place le vélo sur les bonnes pistes
SIGMAG - N°33 - Juin 2022 - 21
SIGMAG - N°33 - Juin 2022 - 22
SIGMAG - N°33 - Juin 2022 - 23
SIGMAG - N°33 - Juin 2022 - 24
SIGMAG - N°33 - Juin 2022 - 25
SIGMAG - N°33 - Juin 2022 - 26
SIGMAG - N°33 - Juin 2022 - 27
SIGMAG - N°33 - Juin 2022 - 28
SIGMAG - N°33 - Juin 2022 - 29
SIGMAG - N°33 - Juin 2022 - - Le réseautage à la portée de tous
SIGMAG - N°33 - Juin 2022 - - Pas à pas : analyse de liens avec ArcGIS Insights
SIGMAG - N°33 - Juin 2022 - 32
SIGMAG - N°33 - Juin 2022 - 33
SIGMAG - N°33 - Juin 2022 - - Concrètement dans l’air du temps
SIGMAG - N°33 - Juin 2022 - - État de Genève : une migration bien planifiée
SIGMAG - N°33 - Juin 2022 - - Les à-côtés
SIGMAG - N°33 - Juin 2022 - 37
SIGMAG - N°33 - Juin 2022 - DÉCOUVERTE - Pézenas célèbre Molière et Boby Lapointe
SIGMAG - N°33 - Juin 2022 - 39
SIGMAG - N°33 - Juin 2022 - 40
SIGMAG - N°33 - Juin 2022 - 41
SIGMAG - N°33 - Juin 2022 - - Se former après le boom de la Covid
SIGMAG - N°33 - Juin 2022 - 43
SIGMAG - N°33 - Juin 2022 - 44
SIGMAG - N°33 - Juin 2022 - 45
SIGMAG - N°33 - Juin 2022 - 46
SIGMAG - N°33 - Juin 2022 - 47
SIGMAG - N°33 - Juin 2022 - - Portrait de Guillaume Malaterre
SIGMAG - N°33 - Juin 2022 - - Les offres d’emploi
SIGMAG - N°33 - Juin 2022 - PERSPECTIVES - En dev, qu’est-ce que le « Rest » ?
SIGMAG - N°33 - Juin 2022 - 51
SIGMAG - N°33 - Juin 2022 - 52
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2403_40
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG_CAMPUS-2312_07
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2312_39
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2310_38
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2306_37
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2303_36
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2212_35
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG_CAMPUS-2212_06
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2210_34
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2206_33
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2203_32
https://www.nxtbook.fr/newpress/VPW-SIGMAG/sigplus-supplement-sigmag-2203_02
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG_CAMPUS-2112_05
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2112_31
https://www.nxtbook.fr/newpress/VPW-SIGMAG/sigplus-supplement-sigmag-2112_01
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2110_30
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2106_29
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2103_28
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2012_27
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG_CAMPUS-2012_04
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2009_26
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2006_25
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-2003_24
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG_CAMPUS-1912_03
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1912_23
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1910_22
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1906_21
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1903_20
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG_CAMPUS-1812_02
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1812_19
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1810_18
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1806_17
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1803_16
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG_CAMPUS-1712_01
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1712_15
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1710_14
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1706_13
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1703_12
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1612_11
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1610_10
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1606_09
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1603_08
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1512_07
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1510_06
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1506_05
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1503_04
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1412_03
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1410_02
https://www.nxtbook.fr/newpress/VPW-SIGMAG/SIGMAG-1406_01
https://www.nxtbookmedia.com