Dans ce cours, vous verrez comment développer des Web Services REST avec le langage Python. La première approche est basée sur des composants et des librairies internes. La seconde par le biais de Django Rest Framework, permet de développer rapidement et avec robustesse des API fonctionnelles.

Description

Durée : 28 heures
Modalités techniques d’évaluation : Évaluation des connaissances par QCM, évaluation des compétences au travers de travaux pratiques et de cas d’études. Contrôle de l’acquisition des connaissances et des compétences pendant la formation par le formateur.
Moyens pédagogiques : Apports théoriques réalisés en classe et complétés par de nombreux travaux pratiques permettent aux participants de disposer d’une expérience concrète. A l’issue des sessions magistrales, réalisation de cas d’études tutorés.

Objectifs pédagogiques

À l’issue de la formation, le participant sera en mesure de :

  • Appréhender les principes des web services REST
  • Manipuler des données JSON
  • Développer des APIs REST avec Django REST Framework
  • Sécuriser des services Web
PROGRAMME DE FORMATION

Les rappels Python

  • Les variable & les typages.
  • Comprendre les collections avec les listes, tuples et dictionnaires.
  • La portée des variables et les références.
  • Optimisez vos fonctions avec les paramètres nommés.
  • Les rappels des classes en Python.

Travaux pratiques
Création d’une classe Python et instanciation d’objet.

Les fondamentaux des Web Services

  • 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 ?

Création d’une API RESTful

  • Composants et librairies pour faciliter la mise en place de l’API.
  • Démarche générale.
  • Création du système de routing.
  • Définir le format d’échange.
  • Mise en place de middlewares.

Travaux pratiques
Conception d’une API REST.

API REST avec Django Rest framework

  • Présentation Django REST Framework et installation.
  • 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 première API simple avec Django REST Framework.

Sécurisation du serveur

  • Authentification et permissions d’accès.
  • Authentification globale ou authentification par vue.
  • Mise en place des JSON Web Tokens avec Simple JWT.

Travaux pratiques
Gestion des authentifications et des permissions d’accès.

Déploiement des webservices REST sur un serveur Linux

  • Gunicorn, exemple de serveur WSGI en pur 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).