top of page

Développement d'une application Python avec FastAPI

Photo du rédacteur: Steve Théberge
Steve Théberge
7 août
4 min de lecture

Le développement d'applications web est en constante évolution, et avec l'émergence de nouveaux frameworks, les développeurs ont plus d'options que jamais. Parmi ces frameworks, FastAPI s'est rapidement imposé comme un choix populaire pour créer des applications Python modernes et performantes. Dans cet article, nous allons explorer comment développer une application Python avec FastAPI, en passant par les étapes essentielles, des exemples pratiques et des conseils pour optimiser votre projet.


Close-up view of a FastAPI logo on a computer screen
Close-up view of a FastAPI logo on a computer screen

Qu'est-ce que FastAPI ?


FastAPI est un framework web moderne et rapide pour construire des APIs avec Python 3.6+ basé sur des annotations de type Python. Il est conçu pour être simple à utiliser tout en offrant des performances élevées, grâce à son utilisation de Starlette pour la gestion des requêtes et Pydantic pour la validation des données.


Caractéristiques principales de FastAPI


  • Performance : FastAPI est l'un des frameworks les plus rapides disponibles, rivalisant avec Node.js et Go.

  • Facilité d'utilisation : Grâce à sa syntaxe intuitive et à ses fonctionnalités intégrées, FastAPI permet de créer des APIs rapidement.

  • Validation automatique : Les données sont validées automatiquement grâce à Pydantic, ce qui réduit le risque d'erreurs.

  • Documentation interactive : FastAPI génère automatiquement une documentation interactive de votre API, facilitant ainsi son utilisation.


Pourquoi choisir FastAPI ?


Choisir FastAPI pour votre projet présente plusieurs avantages :


  1. Rapidité de développement : Grâce à sa simplicité et à ses fonctionnalités intégrées, vous pouvez développer des APIs en un temps record.

  2. Support des types : L'utilisation des annotations de type permet de détecter les erreurs à la compilation plutôt qu'à l'exécution.

  3. Scalabilité : FastAPI est conçu pour gérer des applications à grande échelle, ce qui le rend idéal pour les projets en croissance.


Installation de FastAPI


Pour commencer à utiliser FastAPI, vous devez d'abord l'installer. Voici comment procéder :


  1. Installer FastAPI et un serveur ASGI : Vous pouvez utiliser `uvicorn` comme serveur ASGI. Exécutez la commande suivante dans votre terminal :


    ```bash

    pip install fastapi uvicorn

    ```


  2. Créer un fichier Python : Créez un fichier nommé `main.py` dans votre répertoire de projet.


Créer votre première API avec FastAPI


Maintenant que vous avez installé FastAPI, il est temps de créer votre première API. Voici un exemple simple :


```python

from fastapi import FastAPI


app = FastAPI()


@app.get("/")

def read_root():

return {"Hello": "World"}


@app.get("/items/{item_id}")

def read_item(item_id: int, q: str = None):

return {"item_id": item_id, "q": q}

```


Explication du code


  • Importation de FastAPI : Nous importons la classe `FastAPI` pour créer notre application.

  • Création de l'application : Nous instancions un objet `FastAPI`.

  • Définition des routes : Nous définissons deux routes : une pour la racine (`/`) et une pour récupérer un élément par son ID (`/items/{item_id}`).


Lancer l'application


Pour lancer votre application, exécutez la commande suivante dans le terminal :


```bash

uvicorn main:app --reload

```


Cela démarre le serveur et vous pouvez accéder à votre API à l'adresse `http://127.0.0.1:8000`.


Documentation interactive


L'un des avantages de FastAPI est la documentation interactive générée automatiquement. Une fois votre application en cours d'exécution, vous pouvez accéder à la documentation à l'adresse `http://127.0.0.1:8000/docs`. Cela vous permet de tester vos endpoints directement depuis le navigateur.


Gestion des erreurs


FastAPI facilite également la gestion des erreurs. Vous pouvez définir des exceptions personnalisées pour gérer les erreurs de manière plus efficace. Voici un exemple :


```python

from fastapi import HTTPException


@app.get("/items/{item_id}")

def read_item(item_id: int):

if item_id < 0:

raise HTTPException(status_code=400, detail="Item ID must be a positive integer")

return {"item_id": item_id}

```


Explication du code


  • HTTPException : Nous importons `HTTPException` pour lever des erreurs HTTP personnalisées.

  • Validation de l'ID : Si l'ID de l'élément est négatif, nous levons une exception avec un code d'état 400.


Utilisation de Pydantic pour la validation des données


FastAPI utilise Pydantic pour la validation des données. Cela vous permet de définir des modèles de données qui seront automatiquement validés lors des requêtes. Voici un exemple :


```python

from pydantic import BaseModel


class Item(BaseModel):

name: str

price: float

is_offer: bool = None


@app.post("/items/")

def create_item(item: Item):

return item

```


Explication du code


  • Modèle Item : Nous définissons un modèle `Item` qui contient des champs pour le nom, le prix et une offre éventuelle.

  • Route POST : La route `/items/` accepte un objet JSON qui sera validé selon le modèle `Item`.


Tests de l'API


Pour tester votre API, vous pouvez utiliser des outils comme Postman ou cURL. Voici un exemple de requête cURL pour créer un nouvel élément :


```bash

curl -X POST "http://127.0.0.1:8000/items/" -H "Content-Type: application/json" -d '{"name": "Item 1", "price": 10.5, "is_offer": true}'

```


Authentification et autorisation


FastAPI prend également en charge l'authentification et l'autorisation. Vous pouvez utiliser des dépendances pour protéger vos routes. Voici un exemple simple d'authentification par token :


```python

from fastapi import Depends, Security

from fastapi.security import OAuth2PasswordBearer


oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")


@app.get("/users/me")

def read_users_me(token: str = Depends(oauth2_scheme)):

return {"token": token}

```


Explication du code


  • OAuth2PasswordBearer : Nous utilisons ce schéma de sécurité pour gérer l'authentification par token.

  • Dépendance : La route `/users/me` nécessite un token pour accéder aux informations de l'utilisateur.


Déploiement de l'application


Une fois que votre application est prête, vous pouvez la déployer sur un serveur. Voici quelques options populaires :


  • Heroku : Une plateforme cloud qui facilite le déploiement d'applications.

  • AWS : Amazon Web Services offre une variété de services pour héberger vos applications.

  • Docker : Vous pouvez containeriser votre application et la déployer sur n'importe quel serveur prenant en charge Docker.


Conclusion


FastAPI est un excellent choix pour développer des applications Python modernes et performantes. Grâce à sa simplicité, sa rapidité et ses fonctionnalités avancées, il vous permet de créer des APIs robustes en un temps record. Que vous soyez un développeur débutant ou expérimenté, FastAPI offre des outils puissants pour vous aider à réussir vos projets.


N'attendez plus pour explorer FastAPI et découvrir tout ce qu'il peut offrir. Commencez dès aujourd'hui à construire votre prochaine application Python avec ce framework innovant !

 
 
 

Commentaires


bottom of page