FastAPI : gestion des requêtes POST avec des données JSON
Lorsque vous travaillez avec les API FastAPI, rencontrer un code d'erreur 422 Unprocessable Entity peut être frustrant, en particulier lors de l'envoi de données JSON via des requêtes POST. Cette erreur se produit lorsque le corps de la requête ne correspond pas au format attendu ou qu'il manque des champs obligatoires.
Pour résoudre ce problème, envisagez les options suivantes pour définir un point de terminaison qui attend des données JSON :
Option 1 : Modèles Pydantic
Utilisez les modèles Pydantic pour créer une représentation structurée du corps de votre demande. Cette approche permet une validation et une documentation faciles des paramètres attendus.
Option 2 : Paramètres du corps
Utilisez le paramètre Body intégré pour déclarer la charge utile JSON attendue directement dans la fonction. signature. Cette méthode simplifie la gestion des paramètres.
Option 3 : Type de dict
Définissez le corps de la requête comme un dict[Any, Any] ou un dict si vous utilisez Python 3.9. Bien que cette option ne fournisse pas de validations personnalisées, elle offre de la flexibilité.
Option 4 : Objet de requête de Starlette
Accédez au corps de la requête directement via l'objet de requête de Starlette. Notez que cette approche nécessite l'utilisation de async def et nécessite de gérer l'analyse JSON manuellement.
Options de test
Pour tester les options ci-dessus, envisagez d'utiliser la bibliothèque de requêtes Python ou l'API de récupération JavaScript. Assurez-vous que les en-têtes de requête incluent le type de contenu approprié (par exemple, application/json) et que le corps contient les données JSON requises.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!