Nouveau : Datasets open source gratuits disponibles !Decouvrir →
🐍
Architecture 15 min avance

FastAPI en entreprise : retour d'experience

Sommaire

## Contexte et enjeux

L'entreprise moderne est confrontée à une quantité croissante de données et d'utilisateurs. L'intégration de FastAPI dans l'écosystème technologique de l'entreprise permet d'améliorer la performance, la sécurité et l'efficacité des applications web. 

FastAPI est un framework web performant en Python qui utilise les dernières technologies pour construire une API RESTful efficace. Son objectif principal est de faciliter le développement rapide et sécurisé de services web.

## Concepts clés (avec schémas ou exemples)

### 1. Architecture d'application

FastAPI suit une architecture basée sur des routes, des dépendances et des modèles de données. Voici un exemple simple d'une application FastAPI :

```python
from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
async def create_item(item: Item):
    return item

2. Dépendances

FastAPI permet de gérer les dépendances d'une manière très efficace. Cela permet de factoriser le code et de rendre l'application plus modulaire.

from fastapi import Depends, FastAPI
import schemas
import models
from sqlalchemy.orm import Session
from database import get_db

@app.post("/users/", response_model=schemas.User)
def create_user(user: schemas.UserCreate, db: Session = Depends(get_db)):
    fake_hashed_password = user.password + "notreallyhashed"
    db_user = models.User(email=user.email, hashed_password=fake_hashed_password)
    db.add(db_user)
    db.commit()
    db.refresh(db_user)
    return db_user

3. Sécurité

FastAPI offre des outils puissants pour sécuriser les API. Il prend en charge l'authentification et l'autorisation.

from fastapi import Depends, FastAPI, HTTPException, status
from fastapi.security import OAuth2PasswordBearer, OAuth2PasswordRequestForm
from pydantic import BaseModel

fake_users_db = {
    "johndoe": {
        "username": "johndoe",
        "full_name": "John Doe",
        "email": "johndoe@example.com",
        "hashed_password": "$2b$12$EixZaYVK1fsbw1ZfbX3OXePaWxn96p36WQoeG6Lruj3vjPGga31lW",
        "disabled": False,
    }
}

oauth2_scheme = OAuth2PasswordBearer(tokenUrl="token")

class Token(BaseModel):
    access_token: str
    token_type: str

async def authenticate_user(fake_db, username: str, password: str):
    user = fake_db.get(username)
    if not user:
        return False
    if not verify_password(plain_password=password, hashed_password=user.hashed_password):
        return False
    return user

@app.post("/token", response_model=Token)
async def login_for_access_token(form_data: OAuth2PasswordRequestForm = Depends()):
    user = await authenticate_user(fake_users_db, form_data.username, form_data.password)
    if not user:
        raise HTTPException(
            status_code=status.HTTP_401_UNAUTHORIZED,
            detail="Incorrect username or password",
            headers={"WWW-Authenticate": "Bearer"},
        )
    access_token_expires = timedelta(minutes=ACCESS_TOKEN_EXPIRE_MINUTES)
    access_token = create_access_token(
        data={"sub": user.username}, expires_delta=access_token_expires
    )
    return {"access_token": access_token, "token_type": "bearer"}

Guide pratique pas à pas

1. Installation

Pour commencer à utiliser FastAPI, vous devez d'abord installer le framework.

pip install fastapi uvicorn

2. Création d'une application

Créez un nouveau fichier main.py et ajoutez les routes nécessaires.

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    description: str = None
    price: float
    tax: float = None

@app.post("/items/")
async def create_item(item: Item):
    return item

3. Exécution de l'application

Utilisez uvicorn pour exécuter votre application.

uvicorn main:app --reload

4. Déploiement

Pour déployer votre application FastAPI, vous pouvez utiliser des services tels que Heroku ou DigitalOcean. Voici un exemple de fichier Procfile pour Heroku :

web: uvicorn main:app --host=0.0.0.0 --port=$PORT

Comparatif ou tableau recapitulatif

Caractéristique FastAPI Django
Performance Excellent Moyen
Facilité d'apprentissage Facile Complexe
Scalabilité Bon Bon

Retour d'expérience concret

En tant que développeur en entreprise, j'ai eu l'opportunité de travailler sur plusieurs projets FastAPI. Un des avantages majeurs est la vitesse de développement et la simplicité de la syntaxe. L'utilisation de modèles de données basés sur Pydantic nous permet d'écrire des routes plus rapidement et avec moins d'erreurs.

La sécurité est également une priorité pour les entreprises, et FastAPI offre des outils robustes pour la gestion des identifiants et l'autorisation. Cela a été particulièrement utile dans un projet où nous avons besoin de gérer des utilisateurs avec différents niveaux de droits d'accès.

Checklist ou plan d'action

  • Installer FastAPI et uvicorn
  • Créer une application simple avec une route POST
  • Ajouter des dépendances pour la gestion des données utilisateur
  • Sécuriser l'application en utilisant OAuth2
  • Déployer l'application sur un service cloud

En suivant ce guide, vous devriez être capable de mettre en place une application FastAPI dans votre entreprise et d'en tirer le meilleur parti pour améliorer la performance et la sécurité de vos services web. ```

Un projet tech a lancer ?

Besoin d'un accompagnement ? Decrivez votre projet pour des recommandations.

Recevoir des conseils

Questions frequentes

Quelle est l'architecture recommandée pour un projet FastAPI en entreprise?
L'architecture recommandée pour un projet FastAPI en entreprise comprend une couche d'application qui utilise FastAPI, une couche de données pour la gestion des bases de données et une couche d'infrastructure pour le déploiement et la gestion des services.
Comment gérer les environnements de développement, de test et de production avec FastAPI?
Les environnements peuvent être gérés en utilisant des fichiers `.env` pour stocker les variables d'environnement spécifiques à chaque environnement. Des outils comme Docker ou Kubernetes peuvent également être utilisés pour déployer et gérer les applications dans différents environnements.
Comment assurer la sécurité avec FastAPI en entreprise?
La sécurité peut être assurée en suivant les bonnes pratiques de développement, en utilisant des tokens d'authentification sécurisés comme JWT et en limitant l'accès aux ressources sensibles. Il est également recommandé de mettre en place des tests de sécurité rigoureux avant le déploiement.

Pages liees

Chaque semaine, le meilleur de la tech francaise

Tendances, salaires, outils et opportunites — directement dans votre boite mail.

Gratuit. Desabonnement en un clic. Pas de spam.