Objectifs

– Comprendre les web services REST

– Manipuler des données JSON et XML

– Développer des APIs REST avec Django REST Framework

– Sécuriser des services Web

Programme

– Le rôle des Web Services et leur utilisation.

– Les architectures n-tiers.

– Qu’est-ce qu’un Web Service ? Objectif, principe.

– Comparatif entre SOAP et REST.

– Le rôle de XML et JSON.
Travaux pratiques
Exemples d’applications, comment invoquer un Web Service ?

– Architectures orientées ressource

– Services web REST

– Du RPC au ROA

– Documenter un Webservice Rest

– Les trois niveaux de maturité REST

– Debug et testing avec Postman

 

– Les variable & les typages.

– Les collections avec les listes, tuples et dictionnaires.

– La portée des variables et les références.

– Optimisation des fonctions avec les paramètres nommés.

– Les rappels des classes en Python.
Travaux pratiques
Exercices pour rappeler la syntaxe du langage

-le serveur Web : Bottle vs. Django

– Principe de Routing

– Représentation : KISS vs. MVC

– Choix de la représentation

– Http et CRUD

– Réponse Http et entêtes

-Présentation et installation de Django REST Framework.
-Les vues basées sur des classes.
-Les vues génériques.
-Les sérialiseurs.
-L’ajout d’une App : Django Debug Toolbar.
-L’optimisation des accès aux données.
Travaux pratiques
Création d’une API simple avec Django REST Framework.

-Authentification et permissions d’accès.
-Authentification globale et authentification par vue.
-Mise en place des JSON Web Tokens avec Simple JWT.
Travaux pratiques
Gestion des authentifications et des permissions d’accès.

-Gunicorn, exemple de serveur WSGI en Python pour Unix.
-Consommation par des frameworks frontend utilisant AJAX (Angular, React, Vue).
-Protection contre les CSRF (Cross Site Request Forgery).
-En-têtes CORS (Cross-Origin Resource Sharing).

Référence :  WEB015

Type de Stage : Pratique

Durée : 4 jours

Public concerné:

Développeurs, ingénieurs, chefs
de projets proches du
développement.

Prérequis:

Bonne connaissance du Web,
expérience requise en
programmation en Python.