Développeurs Python
Avoir suivi le stage "Python : Initiation + Approfondissement" ou notions équivalentes
Construire une API en Python avec FastAPI et implémenter une couche d'accès aux données avec un ORM
Présentation des Web Services (WS): fonctionnement, intérêt, interopérabilitéArchitecture orientée services (SOA) vs microservices: composantes, technologiesFastAPI: présentation, cas d'usage, architectureFastAPI vs autres frameworks (Flask, Django)Design et documentation: OpenApi Specification (Swagger)Outils de test de services web: PostmanAtelier: Installation de l'environnement de développement (VS Code + Interpréteur Python) - Création d'un projet FastAPI (structure, point d'entrée, dépendances)
Architecture REST: composantes, méthodes d'appel (GET, POST, PUT, DELETE)Définition de routesGestion des paramètres de la requêteValidation des entrées: typing, pydanticTypes de réponses, format (json, xml, texte, binaire)Gestion des erreursTraitements asynchronesDéploiement d'un service RESTfulInterrogation de web services REST (Python/Javascript)Implémentation de tests unitaires et fonctionnels (TestClient, PyTest)Déploiement et configuration d'une application FastAPI sur un serveur (Uvicorn, Hypercorn)Atelier: Création et interrogation d'une API REST avec FastAPI
Niveaux de sécuritéGestion de l'authentification dans un web service (JWT, OpenID Connect)Gestion des droits (OAuth2)Multiples configurations: CORS, HTTPS,...Atelier: sécurisation globale de l'application FastAPI
Pattern DAO (Data Access Object)Frameworks ORM: fonctionnalités, intérêtORMs Python: SQLAlchemy, Django ORM, PonyORM, SQLObject, Peewee,...Mapping des tables et gestion des clés primaires (simples, composées)Mapping des types de bases, propriétés des colonnesGestion de la concurrence: optimistic (versioning), pessimisticGestion des relations: OneToMany/ManyToOne, OneToOne, ManyToManyParamétrage des cascadesGestion des collectionsMapping de l'héritageStratégies de chargement: Lazy ou EagerAtelier: Réalisation d'un schéma global de mapping d'une base de données
Langage de requêtes objetSélections de base, filtresJointures complexesFonctions d'agrégation, de chaine,...Gestion des chargements Lazy/EagerAtelier: Réalisation d'opérations CRUD (Create Read Update Delete) - requêtes complexes
Cycle de vie des entités et validationIntercepteurs, Event-listenersConfiguration avancée: performance et fonctionnalitésUtilisation du cacheServeurs Websockets en PythonAtelier: Implémentation d'intercepteurs et gestion du cache.
Méthodologie basée sur l'Active Learning : 75% de pratique minimum. Chaque point théorique est systématiquement suivi d'exemples et exercices.
Contrôle continu
Attestation de fin de stage mentionnant le résultat des acquis