Clients légers et API REST
LP - GEI 2
Par Osias Noël TOSSOU
Data Analyst au Port Autonome de Cotonou
Msc. Big Data et PhD. Candidate à UCAD
2023-2024
1
Règle du cours entre étudiants et enseignant
❏ Pas de retard sauf en cas de force majeur (Toujours informer)
❏ Pas de repas pendant le cours
❏ Pas de bavardage pendant le cours
❏ Pas d’utilisation de téléphone portable pendant le cours sans autorisation
❏ Pas d’ordinateur ouvert pendant le cours théorique sauf en cas d’autorisation
❏ Les cours sont de 9h00 à 15h00 avec des pauses
❏ Examen (40%) + TP (60%) ????? a voir avec les étudiants ou l’administration
2
Course Contents
❏ Rappel sur le web et les base de données
❏ Généralités sur les web services, API REST et Framework
❏ Concepts and Advantage
❏ Data Exchange formation : XML, JSON
❏ SOAP
❏ REST/ HTTP
❏ Framework Laravel/CodeIgniter
❏ Configuration, structuration, programmation et test d’un API REST avec PHP
❏ Sécurisation d’un API REST
❏ Introduction et mise en place d’un client léger
❏ Mise en œuvre d’un client léger (avec Angular) et consommation d’un API REST
3
1. Concepts Rappel sur le web et les base de
données
Voir cours de Lionel Médini et de Christine Dufour
4
Thèmes de recherche
1. Interopérabilité des systèmes informatiques : Étude de la capacité des systèmes
informatiques à échanger des données et à utiliser des services de manière transparente,
indépendamment des plateformes et des technologies.
2. Web services : API Rest : Analyse des principes et des technologies utilisés pour développer des
services web conformes à l'architecture REST, permettant l'échange de données et de
fonctionnalités entre applications sur Internet.
3. Sécurité des web services, en particulier le cas des API Rest : Investigation des mécanismes et
des bonnes pratiques pour sécuriser les services web, en mettant l'accent sur les API REST, afin
de protéger les données et de prévenir les attaques potentielles.
4. Architecture client-serveur : Exploration des concepts et des modèles architecturaux
sous-jacents aux applications client-serveur, en mettant en lumière la répartition des tâches et
des responsabilités entre les composants du système.
5. Intégration des web services : Étude des méthodes et des outils pour intégrer efficacement des
services web dans des applications existantes, en tenant compte des défis liés à
5
l'interopérabilité, à la sécurité et à la gestion des versions.
2. Généralités sur les web services, API REST
et Framework
6
Web Services (Définition)
❏ Services informatiques de la famille des technologies web permettant la
communication entre des applications hétérogènes dans des environnements
distribués (Wikipédia)
❏ Ils ont été proposé à la base comme solution dʼintégrations de différents
logiciels développés par des entreprises (ERP, SCM, CRM) leur permettant de
communiquer entre eux.
❏ Basés sur XML (description et échange) et utilisant en général les protocoles du
web comme canal de communication;
7
Types de Services Webs
❏ Deux principaux types
❏ SOAP
❏ REST
8
Web Services SOAP
❏ Simple Object Access Protocol
❏ Protocole dʼéchanges dʼinformations dans un
environnement distribué basé sur XML
❏ Interopérabilité entre applications dʼune même entreprise
(Intranet)
❏ Interopérabilité inter entreprises entre applications et services
web
❏ Similaire au protocole RCP
9
Web Services SOAP
❏ SOAP est principalement composé de trois parties:
❏ Les enveloppes SOAP (ou Message)
❏ Les règles dʼencodages
❏ La représentation RPC
10
Messages SOAP
❏ LʼEnveloppe SOAP > Obligatoire
❏ Une en-tête (Header) > Optionnel
❏ Le corps (Body) > Obligatoire
11
Messages SOAP
❏ Les messages SOAP sont utilisés pour envoyer (requête) et recevoir (réponse)
des informations dʼun consommateur vers un producteur
❏ Un message SOAP peut être transmis à plusieurs récepteurs intermédiaires
avant dʼêtre reçu par le récepteur final (è chaîne de responsabilité)
❏ Le format SOAP peut contenir des messages spécifiques correspondant à des
erreurs identifiées par le récepteur
❏ Un message SOAP est véhiculé en utilisant un protocole de transport (HTTP,
SMTP, …)
12
SOAP : WSDL
❏ Web Service Description Language
❏ Fichier au format XML
❏ Décrit les actions exposées par le web service
13
SOAP – Exemples d’utilisation
14
SOAP : Enveloppe
❏ Constitue la racine dʼun message SOAP
❏ Identifié par la balise <namespace:Envelop>
❏ La balise doit être obligatoirement associé à un espace de noms
[spec W3C]
❏ SOAP définit deux espaces de noms
❏ Enveloppe SOAP : [Link]
❏ Serialization SOAP: [Link]
❏ Requête et Réponse ont la même structure
15
SOAP : En-tête
❏ Balise optionnelle identifié par <namespace:Header>
❏ Quand il est présent, il doit être avant le Body
❏ Utilisé pour transmettre des informations supplémentaires entre
le consommateur et le fournisseur du service
❏ Usages possibles
❏ Informations dʼauthentification
❏ Contexte dʼune transaction
❏ Transiter des informations intermédiaires
16
SOAP : Corps
❏ Identifié par la balise <namespace:Body>
❏ Contient la réponse à lʼappel dʼune action du service
❏ Une erreur <namespace:Fault>
❏ Réponse de lʼaction
❏ Lʼencodage est des informations est précisé par les bindings
du WSDL
17
SOAP : Requête
❏ Appeler les opérations dʼun web service SOAP
18
SOAP : Réponse
❏ Réponse du service à lʼappel de la méthode
19
SOAP : Requête
❏ Appeler les opérations dʼun web service SOAP
20
SOAP : Réponse
Réponse du service à lʼappel de la méthode
21
SOAP : Transport HTTP
❏ Structure dʼune requête HTTP
❏ En-tête (http header)
❏ Corps (http body)
❏ Les messages SOAP sont encapsulés dans le corp de la requête
HTTP
22