Services Web REST
Prof. Ousmane SALL
Université de THIES - UFR Sciences et Technologies -Département Informatique
osall@[Link]
[Link]
lutter_accessing_rest_api.htm
Programmation Applications Mobiles 1
A propos de moi
• Enseignant-Chercheur à l’UFR SET- Université de THIES
[Link]
• Enseignements:
• Algorithmique et Programmation(C, Java, PHP)
• Programmation WEB dynamique(HTML 5 CSS, PHP, MySQL, CMS,...)
• Programmation Java, Dart
• Programmation Java, JakartaEE, JSF, Spring, SpringBoot
• Technologies Mobiles Android, Xamarin, Ionic, Flutter
• Programmation .Net, C#
• Gestion de Projet Informatique
• Génie Logiciel, Qualité et Métrique du Logiciel
• Contact:
• osall@[Link]
• UFR SET, Université de THIES -Dpt Informatique, BP 967 THIES.
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 2
Une sagesse chinoise…
« J’écoute et j’oublie; je lis et je
comprends; je fais et j’apprends »
[Proverbe chinois]
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 3
Contenu
1. Introduction Générale au SDK Flutter et le langage DART
2. Initiation au langage de programmation DART
3. Développement d’applications mobiles cross-platform avec le
Framework Flutter
4. Accéder aux fonctionnalités natives avec les Plugins
5. Services Web REST
6. Persistance de données et Interaction avec le Cloud
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 4
Introduction aux services web
• Les services web sont des services informatiques de la famille des technologies
web permettant la communication entre des applications hétérogènes dans des
environnements distribués
• Les services web sont un moyen pour une application d'exposer son API au
moyen du protocole http.
• Ils ont été proposés à la base comme solution d’intégrations de différents
logiciels développés par des entreprises leur permettant de communiquer entre
eux. Il existe deux principaux types de services web :
• Les services web SAOP
• Les services web REST
• Cette présentation met l’accent sur les services web REST ainsi que sur
l’intégration d’un API REST avec une application Flutter
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 5
Qu’est-ce qu’un service web REST
• Acronyme de REpresentational State Transfer, REST est une approche
plus simple de création de services web basée sur les URL et les
méthodes HTTP (GET, POST, PUT, DELETE)
• Contrairement à HTTP, REST n’est pas un protocole ou un format, mais
plutôt un style d’architecture inspiré de l’architecture du web
fortement basé sur le protocole http
• La simplicité de l’architecture REST fait que les API “REST”, sont
propres et polyvalentes pour beaucoup de types d’échange
d’information entre logiciels.
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 6
Principe de fonctionnement
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 7
Principe de fonctionnement
• L’accès aux ressources du serveur s’effectue via des URL servant de point
d'entrée et des méthodes permettant de manipuler ces ressources
• Une ressource peut subir quatre opérations de bases CRUD
correspondant aux quatre principaux types de requêtes HTTP (GET, PUT,
POST, DELETE)
• RETRIEVE 🡪 GET
• CREATE 🡪 POST
• UPDATE 🡪 PUT
• DELETE 🡪 DELETE
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 8
La méthode GET renvoie une représentation
de la ressource telle qu’elle est sur le système
GET
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 9
La méthode POST crée une nouvelle
ressource sur le système
POST
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 10
DELETE
DELETE Supprime la ressource identifiée par
l’URI sur le serveur DELETE
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 11
PUT Mise à jour de la ressource sur le
système PUT
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 12
API REST
• Flutter fournit un package http pour consommer des ressources HTTP. http
est une bibliothèque basée sur le futur et utilise les fonctionnalités await et
async. Il fournit de nombreuses méthodes de haut niveau et simplifie le
développement d'applications mobiles basées sur REST.
• Le package http fournit une classe de haut niveau et http pour faire des
requêtes Web.
• La classe http fournit des fonctionnalités pour exécuter tous les types de requêtes HTTP.
• Les méthodes http acceptent une URL et des informations supplémentaires via Dart
Map (données de publication, en-têtes supplémentaires, etc.). Il demande au serveur et
recueille la réponse dans le modèle async / wait. Par exemple, le code ci-dessous
lit les données à partir de l'url spécifiée et les imprime dans la console.
print(await [Link]('[Link]
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 13
API REST - Certaines des méthodes de base
sont les suivantes
• read - Demande l'url spécifiée via la méthode GET et renvoie la
réponse en tant que Future<String>
• get - Demande l'url spécifiée via la méthode GET et renvoie la
réponse sous la forme Future<Response>. La réponse est une
classe contenant les informations de réponse.
• post - Demandez l'url spécifiée via la méthode POST en publiant les
données fournies et renvoyez la réponse en tant que
Future<Response>
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 14
API REST - Certaines des méthodes de base
sont les suivantes
• put - Demande l'url spécifiée via la méthode PUT et renvoie la
réponse en tant que Future<Response>
• head - Demande l'url spécifiée via la méthode HEAD et renvoie la
réponse en tant que Future<Response>
• delete - Demande l'url spécifiée via la méthode DELETE et renvoie
la réponse en tant que Future<Response>
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 15
API REST
• http fournit également une classe de client HTTP plus standard,
client. le client prend en charge la connexion persistante. Cela sera
utile lorsque beaucoup de demande sera faite à un serveur particulier.
Il doit être fermé correctement en utilisant la méthode close. Sinon, il
est similaire à la classe http. L'exemple de code est le suivant :
var client = new [Link]();
try{
print(await [Link]('[Link]
}finally {
[Link]();
}
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 16
API REST
• La récupération des données sur Internet est nécessaire pour la
plupart des applications. Heureusement, Dart et Flutter fournissent
des outils, tels que le package http, pour ce type de travail.
• L’exemple utilise les étapes suivantes:
• Ajoutez le package http.
• Envoyez une requête à l'aide du package http.
• Convertissez la réponse en un objet Dart personnalisé.
• Récupérez et affichez les données avec Flutter.
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 17
[Link]
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 18
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 19
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 20
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 21
La méthode [Link]() retourne un Future qui
contient une réponse.
Future est une classe Dart de base pour
travailler avec des opérations asynchrones. Un
objet Future représente une valeur potentielle ou
une erreur qui sera disponible à un moment donné
dans le futur.
La classe [Link] contient les données
reçues d'un appel http réussi.
Convertir la réponse en un objet Dart
personnalisé
Bien qu'il soit facile de faire une requête,
travailler avec une <[Link]> Future brute
n'est pas très pratique. Pour vous simplifier la
vie, convertissez la réponse [Link] en
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles objet Dart. 22
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 23
Afficher la liste JSON dans
une ListView
Pour cela on commence par
déclarer un attribut de la
classe nommée _data qui va
récupérer les données JSON
sous la forme d’une liste
qui va contenir à
l’initialisation du widget
dans la méthode initState
avec l’appel de la méthode
getData
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 24
Afficher la liste JSON dans
une ListView
Insertion des données JSON
converties en liste dans
l’attribut de la classe
_data dans setState pour
une notification de
Prof. Ousmane SALL, Univ. Thiès, SN changement
Programmation d’état
Applications Mobiles 25
Afficher la liste
JSON dans une
ListView
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 26
Afficher la liste JSON dans
une ListView
Gestion de la suppression
de la liste localement avec
la méthode removeAt
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 27
Travaux Pratiques n°5
Préparer la fiche
de TP n°5
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 28
Webographie
• [Link]
• [Link]
• [Link]
ource-sdk-by-google/
• [Link]
• [Link]
• [Link]
• [Link]
Prof. Ousmane SALL, Univ. Thiès, SN Programmation Applications Mobiles 29