Conception et création d'une application REST

REST-PYTHON2 jours

Objet

Le terme REST (REpresentational State Transfer) est encore aujourd'hui employé à outrance par de nombreux sites ou services qui en réalité n'appliquent qu'une partie des concepts introduits par Roy Fielding en 2000. Sous ce terme se cachent en réalité de nombreux principes permettant de tirer parti au maximum de l'architecture du Web, et notamment du protocole HTTP. Comprendre et appliquer correctement ces principes permet d'obtenir une API simple et prédictible, une application passant facilement à l'échelle, et un couplage faible entre client et serveur. On y trouve également de nombreux rapprochements avec le Web 3, ou Web sémantique.
La formation proposée ici se déroule sur deux jours et s'adresse à des développeurs Web souhaitant développer un site ou service Web "RESTful". Elle passe en revue les différents principes de REST et leurs bénéfices dans le cadre du développement d'un service Web ou plus généralement d'une application Web. Partant d'un historique du Web et d'un aperçu des fondamentaux théoriques de REST, elle détaille ensuite les différents concepts (ressources, actions, localisation, représentation, interactions) et les applique à la conception et la réalisation d'un service "RESTful" en Python.
La formation comporte une large part de travaux pratiques permettant de mettre en œuvre immédiatement les concepts ayant été vus dans le cadre du cours.


Public visé

Ce cours s'adresse aux personnes souhaitant développer une application Web "RESTful", et donc découvrir la puissance d'un bon usage de l'architecture du Web (HTTP, hyperliens).


Pré-requis

Notions de base sur le fonctionnement du Web, connaissance pratique de la programmation en Python.


Programme

État des lieux et perspective du web à ce jour

  • Petite histoire du Web

    l'avant Internet, le Web 2 et 3
  • Les services web

    XML-RPC, SOAP, etc.

Concepts du REpresentational State Transfer

  • Ressources et actions

    les bases de la modélisation d'une API REST
  • Identification et localisation

    comment adresser simplement et intuitivement ressources et actions ?
  • Représentations

    les différents formats de représentations envisageables
  • Contrôle des interactions entre client et serveur

    en se basant principalement sur le protocole HTTP (en-têtes et code de retour standards)
  • RESTful API

    les différents degrés de maturité et comparaison avec XML-RPC, SOAP/WSDL

REST et Python

  • Les différents composants d'une architecture RESTful

    quelles sont les différentes librairies existantes facilitant le développement d'un site REST en Python
  • Plates-formes Web

    rapide aperçu des plateformes actuelles pour le développement Web en Python
  • Flask

    détails sur la plateforme Flask pour une application REST

La conception d'une application RESTful

  • Démarche générale

    vue d'ensemble du processus itératif de conception d'une application REST
  • Modélisation des données

    quelles ressources et actions pour une application données ?
  • Définition de l'espace d'adressage

    conception des URLs permettant d'adresser les ressources
  • Opérations sur les données

    modélisation et adressage des actions, contrôle des intéractions avec HTTP
  • Représentations

    quel format d'échange pour vos données ?
  • Liens hypermédia

    aller plus loin et obtenir une application auto-descriptive avec des liens hypermédia
  • La sécurité

    contrôle d'accès avec HTTP
  • HTTP design patterns

    répondre à des besoins courants en n'utilisant que les possibilités de contrôle de HTTP

Conclusion

  • Avantages et inconvénients de REST


Adaptations possibles

Cette formation peut être adaptée afin de répondre au mieux à vos besoins. Le cours utilise par défaut la plateforme Flask et peut par exemple être adapté à l'usage d'une autre lilbrairie Web telle que Django ou Pyramid. Logilab dispose aujourd'hui d'une palette très large de modules pédagogiques permettant la personnalisation de ses formations.
L'adaptation des cours en intra-entreprise est quasiment systématique. N'hésitez pas à demander conseil à notre service commercial.


Conditions

Il est possible d'organiser, à votre demande, une ou plusieurs sessions en intra-entreprise (sur site) n'importe où en France ou en Europe.
Chaque participant à la formation dispose d'un exemplaire personnel du support de cours et du manuel d'exercices.

Durée

2 jours soit 14 heures.

Langue

Au choix, française ou anglaise

Intervenant

Tous les intervenants animant cette formation bénéficient de compétences pédagogiques reconnues. D'autre part, ils ont une grande expérience du développement d'application Web en Python.

Travaux pratiques

Cette formation accorde une place prépondérante aux travaux pratiques qui permettent, tout au long du cours, de mettre en œuvre et assimiler les concepts théoriques.

Intra-entreprise

  • groupes de 10 personnes maximum
  • 2 journées