Passer aux informations sur le produit
Livre blanc sur le développement FastAPI : De la planification au lancement
Livre blanc sur le développement FastAPI : De la planification au lancement
Description
Introduction au livre
De la planification au lancement ! Découvrez l’intégralité du processus de projets concrets avec FastAPI !
Créons un « service web de prise de rendez-vous » en suivant le processus pratique.


Le développement de services ne se résume pas à écrire du code ; il implique de comprendre et de vivre l'ensemble du processus, de la planification au déploiement.
Ce livre décrit étape par étape le processus de développement pratique, en utilisant FastAPI lors de la création d'un « service web de prise de rendez-vous ».
En commençant par définir les exigences du service, nous implémenterons le backend en utilisant la méthode de développement piloté par les tests (TDD), et nous aborderons également l'intégration avec le frontend pré-implémenté et les services externes tels que Google Agenda.
Vous pouvez déployer le service développé à l'aide d'AWS et de GitHub Actions, et expérimenter la configuration et l'exploitation du domaine.
Ce guide pratique de développement va au-delà de la simple maîtrise de FastAPI et vous enseigne comment créer de véritables services. Il comprend des explications pour les débutants ainsi que les informations nécessaires au déploiement et à l'exploitation pour les utilisateurs expérimentés.
  • Vous pouvez consulter un aperçu du contenu du livre.
    Aperçu

indice
Chapitre 1 : Comprendre le projet et les outils que nous allons construire
1.1 Pourquoi devrais-je créer et exécuter un projet ?
__1.1.1 ? Création d’un projet à des fins de portfolio ?
__1.1.2 ? Créer un projet à des fins d’apprentissage ?
__1.1.3 ? Fixons l’objectif du projet pour qu’il soit opérationnel après le lancement !?
1.2 Pourquoi utiliser FastAPI ?
__1.2.1 ? Qu'est-ce que FastAPI ?
Fonctionnalités de FastAPI __1.2.2 ?
1.3 ? Quels sont les objectifs et les plans du projet que nous allons créer ?
__1.3.1 ? Objectif ?
__1.3.2?Plan de projet?
1.4 ? Quels outils utilisez-vous pour vos projets de planification de rendez-vous ?
__1.4.1 ? Outils de développement ?
__1.4.2 ? Outils opérationnels

Chapitre 2 : Apprendre les fonctions de base du shell
2.1 ? Qu'est-ce qu'un coquillage ?
__2.1.1 ? Types d’interfaces shell
2.2 ? Chemin et répertoire ?
__2.2.1?chemin
__2.2.2? répertoire ?
2.3 ? Gestion des fichiers

Chapitre 3 : Préparation de l'environnement de pratique
3.1 ? Installer Visual Studio Code ?
__3.1.1?Télécharger Visual Studio Code?
__3.1.2 ? Installation sur macOS ?
__3.1.3 ? Installation sous Windows ?
3.2 ? Mise en page de l’écran de Visual Studio Code ?
3.3 ? Utilisation de base de Visual Studio Code ?
__3.3.1?Spécifier le répertoire de travail?
__3.3.2?Palette de commandes?
__3.3.3 ? Navigation dans les fichiers et affichage de l’état ?
3.4 ?Extension Visual Studio Code ?
__3.4.1 ? Qu’est-ce qu’une extension ?
__3.4.2?Changer l'apparence?
__3.4.3 ? Installation des extensions Python ?
Essayez d'utiliser le shell __3.4.4?
3.5 ? Environnement virtuel Python ?
__3.5.1 ? Qu’est-ce qu’un environnement virtuel Python ?
__3.5.2 ? Gestion des environnements virtuels ?
3.6 ? Installez FastAPI et testez-le.
__3.6.1?Installation de FastAPI?
__3.6.2 ? Utilisation du gestionnaire de paquets, Poetry ?
__3.6.3?Serveur d'applications Web : Starlette, Uvicorn ?
__3.6.4?Bonjour le monde

Chapitre 4 : Planification des services de prise de rendez-vous
4.1 ? Planification de la fonction de service de prise de rendez-vous ?
__4.1.1?Aperçu du service?
4.2 ? Principales caractéristiques ?
__4.2.1?Implémentation du calendrier : Sélection de la date souhaitée ?
4.2.2 ? Création d’une réservation : enregistrement d’un itinéraire
__4.2.3 ? Afficher les calendriers par utilisateur séparément ?
__4.2.4 ? Comment synchroniser Google Agenda ?
__4.2.5 ? Mise en œuvre de la connexion via les réseaux sociaux ?
4.3 ? Planification des éléments d'interface utilisateur ?
__4.3.1?Écran par défaut?
__4.3.2?Zone de créneau horaire?
__4.3.3 ? Un écran pour saisir des informations afin de prendre rendez-vous ?
__4.3.4?Écran de fin de demande de rendez-vous?
__4.3.5 ? Que se passe-t-il s’il n’y a pas de date pour prendre rendez-vous ?
4.4 ?Conception des données ?
__4.4.1 ? Connaissez-vous certains concepts ?
__4.4.2?Objet utilisateur?
__4.4.3?Objet Compte social de l'utilisateur?
__4.4.4?Objet Calendrier de l'utilisateur?
__4.4.5?Objet créneau horaire?
__4.4.6 ? Objet de réservation ?
4.4.7 ? Élaboration d’un diagramme entité-relation du service de prise de rendez-vous

Chapitre 5 Modélisation des données
5.1 ? Comment utiliser une base de données en Python : SQLModel ?
__5.1.1?SQL et ORM?
__5.1.2?SQLAlchimie?
__5.1.3?Pydantique?
__5.1.4?SQLModel?
5.2 ?Modélisation ?
__5.2.1 ?Objet utilisateur : Modèle utilisateur ?
__5.2.2?Objet Compte social utilisateur : Modèle OAuthAccount ?
__5.2.3?Objet Calendrier utilisateur : Modèle de calendrier ?
__5.2.4?Objet TimeSlot : Modèle TimeSlot ?
__5.2.5 ? Objet de réservation : Modèle de réservation ?
5.3 ? Établissement d’une connexion à une base de données ?
__5.3.1 ? Qu'est-ce que SQLite ?
__5.3.2 ? Comment se connecter à une base de données avec SQLAlchemy ?
__5.3.3 ? Comment créer une session avec SQLAlchemy ?
__5.3.4 ? Établissement d’une connexion à une base de données ?
5.4 ?Migrer la base de données à l'aide d'Alembic ?
__5.4.1?Concepts clés de l'alembic?
__5.4.2 ? Installation et initialisation d'Alembic ?
__5.4.3 ? Configuration d'Alembic ?
__5.4.4 ? Générer un script de migration ?
__5.4.5 ? Essayez de configurer la migration automatique (génération automatique) ?
__5.4.6 ? Utilisation du modèle de script de migration ?
__5.4.7 ? Vérification du bon fonctionnement du script de migration : Appliquer et annuler ?

Chapitre 6 : Tests de code
6.1 ?Aperçu des tests ?
__6.1.1 ? Qu’est-ce qu’un test ?
__6.1.2 ? Type de test ?
__6.1.3?Test Double?
__6.1.4 ? Tests avec pytest ?
6.2 ? Exercices de tests unitaires ?
__6.2.1 ? Exercices de tests unitaires ?
__6.2.2?En savoir plus sur les tests de documentation ?
6.3 ? Pratique de test intégrée ?
__6.3.1 ? Mise en œuvre d’une API pour télécharger les informations utilisateur ?
__6.3.2 ? Tester l’API avec un client de test ?
__6.3.3 ? Création et test d’un utilisateur dans la base de données ?
6.4 ? Tests effectués avec la fonctionnalité de fixtures de pytest ?
__6.4.1 ? Utilisation de fixtures dans le code de test ?
__6.4.2 ? Injection des dépendances de session dans le code d'implémentation ?
__6.4.3 ? Unification des clients de test dans les fixtures également

Chapitre 7 : Mise en œuvre de l’inscription des membres et de l’authentification des utilisateurs
7.1 ? Écrire un code de test pour l’inscription des membres ?
__7.1.1?(1) Un compte est créé lorsque tous les éléments d'entrée sont saisis avec des valeurs valides ?
__7.1.2?(2) Si le nom d'utilisateur est invalide, un message d'erreur est émis indiquant que le nom d'utilisateur est invalide.
__7.1.3?(3) Si l'identifiant du compte (nom d'utilisateur) est dupliqué, une erreur d'identifiant de compte dupliqué se produit ?
__7.1.4?(4) Si une adresse électronique est dupliquée, une erreur se produit qui contient un message en double ?
__7.1.5?(5) Si vous n'entrez pas de nom d'affichage, il sera remplacé par une chaîne aléatoire de 8 caractères.
7.2 ? Mise en œuvre de l’API d’inscription des membres ?
__7.2.1?(1) Validation des données de formulaire avec Pydantic
__7.2.2?(2) Application du schéma SignupPayload à l'API d'inscription ?
__7.2.3?(3) Seuls username, display_name et is_host sont imprimés dans le résultat de la réponse ?
7.3 ? Implémentation de la connexion ?
__7.3.1?Technologie requise pour implémenter la connexion ?
__7.3.2 ? Mise en œuvre de l’API de connexion ?
7.4 ? Mettre en œuvre une API pour récupérer vos propres informations ?
__7.4.1 ? Qu'est-ce que l'injection de dépendances FastAPI ?
__7.4.2?Scénario d'API pour récupérer ses propres informations ?
__7.4.3 ? Obtenir le jeton d’authentification à partir du cookie et vérifier l’authentification ?
__7.4.4?Vérification de l'implémentation avec un code de test défaillant?
7.5 ? Implémentation de la page de calendrier et de paramètres de compte FastAPI ?
__7.5.1 ?Modifier les informations du compte ?
__7.5.2 ? Mise en œuvre de la déconnexion ?
7.5.3 ? Mise en œuvre du retrait des membres

Chapitre 8 : Mise en œuvre d’une gestion des calendriers et des réservations personnalisée
8.1 ? Importer les calendriers par hôte ?
__8.1.1?Scénario utilisateur?
__8.1.2 ? Obtenir les informations du calendrier par nom d'utilisateur hôte ?
__8.1.3 ? Renvoi d'une réponse 404 lors de la tentative de récupération d'informations de calendrier avec un nom d'utilisateur inexistant ?
__8.1.4 ? Renvoi d’une réponse 404 lors de la tentative de récupération d’informations de calendrier avec un nom d’utilisateur autre que celui de l’hôte ?
Test de __8.1.5?host_calendar_detail(?) avec l'API
8.2 ? Créer et modifier le calendrier de l’hôte ?
__8.2.1 ? Les utilisateurs hôtes peuvent-ils créer des calendriers en soumettant des informations de calendrier valides ?
__8.2.2 ? Lorsque j’essaie de créer un calendrier supplémentaire alors qu’il existe déjà, il renvoie une réponse 422 ?
__8.2.3 ? Renvoi d'une réponse 403 lorsqu'un utilisateur invité tente de créer un calendrier
8.2.4 ? Seuls les éléments modifiés par l’utilisateur sont modifiés, les autres conservant leurs valeurs d’origine ?
8.3 ? Gestion des créneaux horaires ?
__8.3.1 ? Un utilisateur hôte peut-il créer un créneau horaire en soumettant des informations de créneau horaire valides ?
__8.3.2 ? Répondre avec une erreur HTTP 422 lors de la tentative de création avec des informations de créneau horaire invalides ?
__8.3.3 ? Répondre avec le code HTTP 422 en cas de chevauchement des fuseaux horaires ?
8.4 ? Réservation ?
__8.4.1 ? Lors d’une demande de création de réservation avec des détails de demande de réservation valides, répondre par HTTP 201 contenant les détails de la réservation ?
__8.4.2 ? Répondre à une erreur HTTP 404 lors de la création d'une réservation pour un utilisateur non hôte ?
__8.4.3 ? Réponse à l’erreur HTTP 404 lors de la création d’une réservation dans un fuseau horaire inexistant ?
8.5 ? Importer les réservations du calendrier ?
__8.5.1 ? Mise en œuvre d’une API permettant à l’hôte de recevoir les détails de la réservation ?
__8.5.2 ? Les voyageurs reçoivent-ils des réservations mensuelles de la part des hôtes ?
8.5.3 ? Les clients reçoivent-ils leurs réservations de calendrier page par page ?
__8.5.4 ?Les utilisateurs reçoivent-ils des données de détails de réservation spécifiques ?
8.6 ?FastAPI Calendrier, Gestion des réservations ?
8.6.1 ? Un hôte peut-il modifier la date et le créneau horaire d’une réservation qu’il a demandée ?
__8.6.2?L'invité et l'hôte ne peuvent pas changer de créneau horaire pour celui d'un autre hôte ?
8.6.3 ? Les clients peuvent-ils modifier le sujet, la description, la date et le créneau horaire de leur réservation ?
__8.6.4 ? Une petite suggestion pour vous ?
8.7 ? Gestion des informations relatives au statut de présence dans les réservations ?
__8.7.1 ? Ajouter le champ Statut de présence au modèle de réservation, type de données Enum ?
__8.7.2 ? Migration de base de données ?
__8.7.3 ? Les hôtes peuvent modifier le statut de présence des réservations qu’ils ont demandées.
8.8 ? Téléchargement de fichiers ?
__8.8.1?Téléchargement de fichiers HTTP?
__8.8.2 ? Comment FastAPI gère-t-il les téléchargements de fichiers ?
__8.8.3 ? Les clients peuvent télécharger des fichiers pour leurs réservations : Pratique ?
__8.8.4 ? Utilisation de fastapi-storages ?
__8.8.5 ? Les clients peuvent télécharger des fichiers pour leurs réservations : Essayez-le !
__8.8.6 ? Générer des scripts de migration liés au chargement ?
__8.8.7 ? Utilisation de la méthode unique (?) lors de la manipulation de l'objet Result de SQLAlchemy

Chapitre 9 : Gestion des données sur la page de l’opérateur
9.1 ? Page opérateur et SQLAdmin ?
__9.1.1?Page d'administration?
__9.1.2 ? Qu'est-ce que SQLAdmin ?
__9.1.3?Installation et configuration de SQLAdmin?
9.2 ? Utilisation de base de SQLAdmin ?
__9.2.1?Métadonnées?
__9.2.2?Liste page
__9.2.3?Page de détails?
__9.2.4 ?Options de pagination ?
__9.2.5 ?Options générales ?
__9.2.6 ?options de formulaire ?
__9.2.7 ?Options d'exportation ?
__9.2.8 ?Ajustement de l’affichage des objets individuels du modèle ?
__9.2.9 ? Définition des pages d'administration correspondant aux modèles ?
9.3 ? Extension et modification des fonctionnalités par surcharge de méthodes ?
__9.3.1? on_model_change(self, data: dict, model: Any, is_created: bool, request: Request)?
__9.3.2?insert_model(self, request: Request, data: dict)
__9.3.3?update_model(self, request: Request, pk: str, data: dict)?
__9.3.4? après_modification_du_modèle(self, data: dict, model: Any, is_created: bool, request: Request)?
__9.3.5 ? Ajouter un champ de modèle de statut au modèle Utilisateur ?
__9.3.6?on_model_delete(self, model: Any, request: Request)
__9.3.7? après_suppression_modèle(self, modèle : Any, requête : Requête)?
__9.3.8?delete_model(self, request: Request, pk: Any)?
__9.3.9?formulaire_échafaudage(?)?
__9.3.10?list_query(self, request: Request)
__9.3.11?hybrid_property et expression
__9.3.12?search_query(self, stmt: Select, term: str)?
9.4 ? Schéma d'authentification de l'utilisateur SQLAdmin ?
__9.4.1 ? Mise en œuvre d'un système d'authentification dorsal ?
__9.4.2 ? Application du backend d'authentification

Chapitre 10 : Intégration de l’interface utilisateur au projet de réservation de rendez-vous
10.1 ?Fichiers statiques ?
__10.1.1?Serveur Web et serveur d'applications Web?
__10.1.2 ? Servir des fichiers statiques dans FastAPI ?
10.2 ? Exécuter le résultat implémenté en tant que serveur web Python ?
10.3 ? Gestion CORS ?
10.4 ? API de liste d'hôtes ?
10.5 ? Réponse claire en l'absence de jeton d'authentification
__10.5.1 ? Comment gérer l’absence de jeton d’authentification ?
__10.5.2 ? Gestion des erreurs d'exception d'authentification claire dans SQLAdmin
10.6 ? Flux calendaire ?
__10.6.1?Liste des hôtes?
__10.6.2 ? Afficher le calendrier ?
__10.6.3?Créer une réservation?
__10.6.4 ? Détails de la réservation du client ?
__10.6.5?Voir les détails de la réservation?
10.7 ? Spécifications de développement Web Front-End ?
__10.7.1 ? Quelle pile technologique utilisez-vous ?
__10.7.2 ?Structure du répertoire ?
__10.7.3 ?Configuration de l'environnement de développement

Chapitre 11 : Stratégies de chargement différé SQLAlchemy
11.1 ? Qu’est-ce que le chargement différé ?
11.2 ? De quel type de chargement différé s’agit-il ?
__11.2.1 ? Chargement instantané ?
__11.2.2 ?Chargement différé ?
__11.2.3 ?Pas de chargement différé (pas de chargement)
__11.2.4 ? Quelle est la différence ?
__11.2.5 ? Points à noter ?
11.3 ? Appliquer le chargement différé SQLAlchemy ?
__11.3.1?(1) Application du chargement différé au modèle User?
__11.3.2?(2) Application du chargement différé au modèle OAuthAccount
__11.3.3?(3) Application du chargement différé au modèle Calendar?
__11.3.4?(4) Application du chargement paresseux au modèle TimeSlot?
__11.3.5?(5) Application du chargement différé au modèle Booking?
__11.3.6?(6) Application du chargement différé au modèle BookingFile

Chapitre 12 : Intégration de Google Agenda
12.1 ? API Google Cloud ?
__12.1.1 ? Qu'est-ce que l'API Google Cloud ?
__12.1.2 ? Éléments et concepts clés de l’API Google Cloud ?
__12.1.3 ? Préparation de la console Google Cloud
__12.1.4?Partage de calendriers et octroi d'autorisations?
12.2 ? Créer un événement dans Google Agenda ?
__12.2.1 ? Installation du client Python de l’API Google Cloud ?
__12.2.2?Définition du service Google Agenda?
__12.2.3 ? Créer un planning (événement) ?
__12.2.4 ? Mise en œuvre du test
__12.2.5 ? Définition d'un schéma ?
12.3 ? Gérer les événements dans Google Agenda ?
__12.3.1 ? Définition d’un banc d’essai ?
__12.3.2 ?Supprimer le planning ?
__12.3.3?Obtenir un horaire précis ?
__12.3.4 ? Modifier le planning ?
__12.3.5?Obtenir la liste des horaires ?
12.4 ? Mise en œuvre de l’intégration de Google Agenda dans la mise en œuvre de la planification des rendez-vous ?
__12.4.1 ? Définition des dépendances du service Google Agenda
__12.4.2 ? S’inscrire à Google Agenda lors de la création d’une réservation ?
__12.4.3 ? Mise à jour des modifications apportées aux réservations dans Google Agenda
__12.4.4 ? Intégrer les événements Google Agenda dans la liste des réservations de l’hôte ?
12.5 ?Tâches en arrière-plan FastAPI ?
__12.5.1 ?Tâches en arrière-plan ?
__12.5.2?StreamResponse

Chapitre 13 : Enregistrement, observation et gestion des erreurs
13.1 ? Système de journalisation des erreurs ?
13.2 ? Qu'est-ce que Sentry ?
13.3 ?Créer un compte et un projet ?
13.4 ? Réflexion sur Sentry dans le cadre du projet de prise de rendez-vous ?
__13.4.1?Arguments d'initialisation?
__13.4.2 ? Arguments de l'outil d'intégration
13.5 ? Test du journal des erreurs ?
13.6 ? Enregistrement manuel

Chapitre 14 Déploiement sur Amazon Web Services
14.1 ? Gestion des paquets de dépendances ?
__14.1.1?Gestionnaire de paquets?
__14.1.2 ? Geler les paquets dépendants ?
__14.1.3 ? Installation plus rapide avec uv ?
14.2 ?Configurer un serveur avec AWS Lightsail ?
__14.2.1 ? Qu'est-ce qu'AWS Lightsail ?
__14.2.2?Service Voile Lumière?
__14.2.3 ?Configuration d'un serveur dans Lightsail
14.3 ?Configurer l'environnement sur le serveur d'instance ?
__14.3.1?SSH et clés d'authentification SSH?
__14.3.2?apt gestionnaire de paquets?
__14.3.3 ? Installation des outils de compilation ?
__14.3.4?Nginx?
__14.3.5 ? Configuration d’un environnement virtuel Python ?
__14.3.6?Écrire une application FastAPI pour Hello World?
__14.3.7?Écrire un script pour exécuter une application web?
__14.3.8?Gestion des services avec Systemd?
__14.3.9 ? Proxy vers Nginx ?
__14.3.10?Diffuser des fichiers statiques avec Nginx
14.4 ?Automatisation des déploiements à l’aide de GitHub Actions ?
__14.4.1 ? Qu’est-ce que GitHub Actions ?
__14.4.2 ? Comprendre les concepts de base
__14.4.3 ? Écrire un workflow GitHub

Image détaillée
Image détaillée 1

Dans le livre
Ce livre vous aidera à implémenter, déployer et mettre en service un serveur d'applications web.
Si vous n'avez aucune expérience en matière de lancement de projet, il est plus important que tout autre chose d'acquérir de l'expérience en lançant quelque chose, même de petite envergure.
Ici, l'expression « même si petit » fait référence non seulement à l'échelle du projet, mais aussi à la volonté que j'y ai investie.
Par exemple, si les outils que vous utilisez pour créer votre projet sont trop difficiles ou complexes, il y a de fortes chances qu'il ne soit jamais commercialisé.
À cet égard, FastAPI répond parfaitement aux critères car son apprentissage ne présente pas de difficulté majeure.

En d'autres termes, ce livre explique FastAPI, mais il traite également FastAPI comme un outil pratique et un support d'apprentissage adapté au développement, au lancement et à l'exploitation de projets.
Le contenu de ce livre présente des connaissances et des technologies qui peuvent être utilisées dans d'autres outils que FastAPI, mais il est plus facile et plus intuitif de les expérimenter et de les apprendre avec FastAPI.

Je suppose que les lecteurs suivants attendaient ce livre avec impatience :
● Ceux qui n'ont jamais utilisé Python comme langage principal, mais qui ont de l'expérience avec d'autres langages et qui souhaitent développer rapidement un serveur d'applications web
● J'ai utilisé Django ou Flask et je souhaite apprendre FastAPI de manière pratique.
est un développeur
● Les data scientists, les ingénieurs de données ou les ingénieurs en IA qui utilisent Python et souhaitent développer et déployer correctement des serveurs d'applications web

De plus, ce livre ne traite pas du développement piloté par les tests ni des méthodologies agiles.
Nous tirons toutefois parti de certains éléments du développement piloté par les tests ou des méthodologies agiles, activités nécessaires à un apprentissage efficace et à une exécution de projet réussie.
Par conséquent, ce livre vous permettra d'acquérir de l'expérience dans la conception, la planification ou la rédaction de code de test pratique, ou encore dans la conversion de plans ou d'exigences en travail de développement.
Si vous ne savez pas comment appliquer ces méthodologies de développement à votre travail, cette expérience pratique vous sera bénéfique.
--- Extrait du texte

Avis de l'éditeur
Du développement au lancement de services avec FastAPI
Apprenez et expérimentez plus facilement et plus efficacement !

La planification et la création d'un service ne sont pas faciles, mais son lancement et son exploitation nécessitent encore plus d'essais, d'erreurs et de savoir-faire.
Des problèmes qui n'étaient pas apparents lors de l'exécution sur un hôte local peuvent surgir pendant le processus de déploiement, entraînant une augmentation des défaillances et de la complexité.
Ce livre va donc au-delà de la simple implémentation d'un serveur d'applications web et couvre le processus de lancement d'un service concret.
Si les outils utilisés sont trop complexes, il est difficile de mener le projet à terme. À cet égard, FastAPI est facile à prendre en main et permet d'obtenir rapidement des résultats, ce qui le rend idéal pour une utilisation concrète sur des projets réels.

Ce livre prend pour exemple un service web de prise de rendez-vous et suit l'ensemble du processus, de la planification à la mise en œuvre et au déploiement.
Les chapitres 1 à 6 posent les bases du développement, notamment la définition des exigences, la conception et la configuration de l'environnement. Les chapitres 7 à 12 traitent de la mise en œuvre complète des fonctionnalités et de leur intégration avec l'interface utilisateur et les services externes (Google Agenda).
Les chapitres 13 et 14 examinent les méthodes de déploiement et d'exploitation utilisant GitHub et AWS.
Tout au long du processus, nous appliquons des éléments de développement piloté par les tests (TDD) et des méthodes de développement agile pour suivre un flux proche des sites de développement réels et améliorer l'exhaustivité grâce à des tests à la fin de chaque fonction.
Ce livre vous permettra de découvrir l'intégralité du processus de développement et de lancement d'un service web avec FastAPI, en mettant l'accent sur la pratique.
SPÉCIFICATIONS DES PRODUITS
- Date d'émission : 7 novembre 2025
- Nombre de pages, poids, dimensions : 640 pages | 183 × 235 × 27 mm
- ISBN13 : 9791140716418

Vous aimerez peut-être aussi

카테고리