Api Rest
Api Rest
MOUSSA OUTMAN
Objectifs :
a- Installation et utilisation des environnements de développement et de consommation des
API REST
b- Savoir utiliser des clients HTTP avancés pour consommer une API REST
vérification de la version
On constate que la version LTS (long-term support qui désigne une version spécifique d'un
logiciel dont le support est assuré pour une période plus longue que la normale) qui est la
version normale(stable) c’est-à-dire la version récente qui est 16.13.0
Pour afficher la liste et voir le nouvel item dont l’id est 6 on tape la commande :
root@outman-HP: ~/tpEstm# Cat users.json
liste des items
CURL est un outil de ligne de commande et comprend une bibliothèque. Il prend en charge la
plupart des protocoles pour faciliter le transfert de données avec la syntaxe d'URL. Par défaut,
lorsqu’on installe un système d'exploitation Ubuntu, ce programme est préinstallé. Et on peut le
tester avec la commande suivante :
root@outman-HP: ~# curl –help
Pour installer curl on tape la commande :
root@outman-HP: ~# apt install curl
Pour voir la liste des paquets pouvant être mis à jour on tape la commande :
Maintenant on passe à l’utilisation des clients HTTP avancés pour consommer l’API (lecture,
création, mise à jour, suppression) c’est à dire à l’exécution des commandes qui sont les
suivants :
- GET
- POST
- PUT
- DELETE
Démarrer le serveur json sur un port souhaité
Pour lister un jeu de données dans un fichier avec curl en utilisant GET on tape la commande :
root@outman-HP: ~# curl http://localhost:5000/users
GET
POST
Pour mettre à jour d’un jeu de données avec curl on utilise PUT en tapant la commande :
root@outman-HP: ~# curl -X PUT -d id=6 -d first_name=example -d last_name=example -d
email=example@example http://localhost:5000/users/6
NB : On précise toujours l’id en mettant d’abord / suivi de l’id dans notre cas l’id est égale à 6
Pour voir si c’est bien mis à jour on doit s’assurer qu’on est dans le dossier qui contient le
fichier ayant le jeu de données et on vérifie avec la commande :
root@outman-HP: ~/tpEstm# cat users.json
Liste de put
Pour voir si c’est bien supprimé on doit s’assurer qu’on est dans le dossier qui contient le
fichier ayant le jeu de données et on vérifie avec la commande :
root@outman-HP: ~/tpEstm# cat users.json
Liste DELETE
Préambule :
On suppose que vous avez déjà lancer le serveur Json ecoutant sur le port 5000 simulant une
API RESTfull
Introduction :
cURL (client URL request library) est une librairie qui permet de communiquer avec de
nombreux types de serveurs et en utilisant les protocoles standards
(HTTP,HTTPS,FTP,Telnet,LDAP,etc.). Il est possible d'utiliser des proxys lors de la
communication. Cette librairie est vitale pour s'interfacer avec des API's (Application
Programming Interface) qu'elles soient REST, SOAP ou autre. cURL supporte les méthodes de
requêtes en READ,GET et POST ainsi qu'en PUT et DELETE.
HEAD : sert à récupérer l'en-tête d'une page internet sans le corps de la page. Ce genre de
requête offre l'avantage d'être très légère lors de son exécution aussi bien en ressource qu'en
bande passante, elle est parfaite pour contrôler si un site internet répond.
GET : la méthode GET demande au serveur distant la page (ou le fichier) dans les standards ce
type de méthode sert uniquement à récupérer des données.
POST : la méthode POST sert à envoyer au serveur distant les données (ressources) indiquées.
Pour faire du HTTP c’est-à-dire un serveur web on installe d’abord apache2 en tapant la
commande :
apt install apache2
Pour qu’apache puisse exécuter du code php on installe php en tapant la commande :
apt install php
Pour que le serveur apache puisse exécuter un programme php sur le navigateur on doit
s’assurer si on a installé tous les paquets nous permettant d’exécuter ce programme. Pour cela
on doit consulter le fichier log pour voir les paquets manquants ou il y’a erreur de syntaxe en
tapant la commande :
Tail -f /var/log/apache2/error.log
On constate qu’a la ligne2 que curl_init() est indéfini ce qui signifie qu’on a pas installé
l’extension php-curl. Pour cela on installe l’extension en tapant la commande :
apt install php-curl
NB : Pour accéder à site héberger par dossier, comme c’est un sous dossier du document root
de notre serveur apache qui est /var/www/html/ si on crée un sous dossier dans ce document
root pour y accéder à l’application via au navigateur web on fait :
L’adresse du serveur/ le nom du dossier/ le nom du programme
On édite le fichier nano exo2.php pour coller le programme généré par la commande qui permet
de créer un utilisateur (POST)
On édite le fichier nano exo3.php pour coller le programme généré par la commande qui permet
de mettre à jour un utilisateur (PUT)
On édite le fichier nano exo4.php pour coller le programme généré par la commande qui permet
de supprimer un utilisateur (DELETE)
On édite test1.php
Modifions test1
Rappelons le formulaire
On actualise le navigateur
Résultat :
Résultat :
import mysql.connector
def database():
global conn,cursor
conn=mysql.connector.connect(host="localhost",user="djidda",passwor="
passer",database= "banque")
cursor=conn.cursor()
def lecture():
sql="select * from clients"
database()
cursor.execute(sql)
tab=cursor.fetchall()
return(tab)
result=lecture()
print(result)
7- Créons la fonction update(id,solde) qui modifie le compte dont l’id est founi et remplace
l’id et solde
def update(id,solde):
sql="update clients set solde=%s where id=%s"
database()
val = (solde,id)
cursor.execute(sql, val)
conn.commit()
update("750000000", 2)
result=lecture()
print(result)
2- on
on a 4 phases
from flask import Flask : on importe le module Flask
On
Pour changer l’adresse ip pour qu’il écoute sur n’importe quelle adresse ip qu’on veut qui est
0.0.0.0 et que son port d’écoute est 8000 on fait :
http://192.168.1.3:8000/outman
app = Flask(__name__)
@app.route('/outman/<int:nom>')
def hello_world(nom):
return "Bonjour %s"%nom
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8000,debug = True)
On a activé debug a true pour que s’il y’a erreur il nous affiche
Si on veut remplacer des entiers par des réels a la place de int on met float
app = Flask(__name__)
@app.route('/outman/<float:nom>')
def hello_world(nom):
return "Bonjour %s"%nom
if __name__ == '__main__':
app.run(host='0.0.0.0',port=8000,debug = True)
Quand on veut utiliser une variable dans une chaîne de caractère on peut formater en mettant f
devant les chaînes et les variables entre accolade
L’API est l'acronyme d'Application Programming Interface, que l'on traduit en français par
interface de programmation applicative ou interface de programmation d'application est outils
permettant de rendre de l’information et des fonctionnalités accessibles via internet
Les paquets suivants sont indispensables pour le fonctionnement de notre API :
Installation de flask
En consultant la base de données en ligne de commande, on constate que Macky Sall a été bien
ajouté
On crée des comptes à des utilisateurs dans le fichier /etc/asterisk/ en éditant le fichier sip.conf
[2000] : le nom du compte
type= friend :permet à ce compte d’appeler et de recevoir des appels
context=rtn : le nom du groupe d’appels
host= dynamic : ce compte peut être utilisé de partout
secret=passer : le mot de passe
On installe net-tools pour nous permettre de taper la commande netstat pour voir si asterisk a
bien démarré et que son port (5060) est ouvert
On fait netstat -anp| grep -w 5060 pour voir si le port est ouvert
Installation de microsip
On lance microsip
Installation de blink
On édite le fichier
Maintenant on peut lancer blink en graphique ou en ligne de commande. Dans notre cas on le
lance en graphique. Après avoir lancé blink, on clique sur l’onglet blink, en cliquant sur
préférences et en cliquant sur +(ajouter) on obtient la fenêtre ajout de compte qui nous
permettra d’ajouter un compte :
On relance asterisk -rvvvvvv et on saisit sip show users pour voir les utilisateurs
Pour voir les gens qui sont connectés on fait sip show peers
Maintenant du microSIP on appelle blink c’est-à-dire l’utilisateur qui a pour compte 2000 appel
2001
NB : lien d’un site de conversion de curl dans un langage tel que python php nodejs, java etc.
https://curl.trillworks.com
On exécute le programme
Après l’installation et lancement on va se trouver sur cette fenêtre, à gauche c’est Windows et à
droite c’est linux. On prend le document de Windows on le glisse sur le bureau de linux
On va dans var pour aller créer un site web avec un formulaire html
Les utilisateurs sont mis en communication. Quand on appui sur répondre on verra que le
second téléphone se met à son tour à sonner
Algo :
On crée (2) labels appelant et appelé.
On crée 2 zones de texte Entry nommées appelant et appelé.
On crée un bouton On place les 5 widgets.
On crée une fonction call Quand on clique sur le bouton, on appelle (call) avec les paramètres
appelant et appel