Ce tutoriel poursuit notre série en trois parties sur la construction d'API RESTful avec Flask. La première partie a démontré des API de construction directement avec Flask, offrant une flexibilité mais nécessitant un code important. Cette pièce rationalise le processus à l'aide de Flask-Restless, une extension FLASK qui génère des API RESTful à partir de modèles de base de données SQLALCHEMY. Nous utiliserons le même exemple d'application pour la cohérence. Le code source complet du projet précédent est disponible sur notre référentiel GitHub.
Installation des dépendances
Pour intégrer le flacon sans relâche, installez-le à l'aide de pip:
pip install Flask-Restless
L'application
FLASK-RESTESS Simplifie la création de l'API. La méthode create_api()
, dans la définition du modèle, vous permet de spécifier des méthodes HTTP prises en charge (obtenir, publier, supprimer, mettre) et des fonctions pré et post-traitement facultatives pour chacun.
Voici un exemple:
manager.create_api( Product, methods=['GET', 'POST', 'DELETE'], preprocessors={ 'GET_SINGLE': ['a_preprocessor_for_single_get'], 'GET_MANY': ['another_preprocessor_for_many_get'], 'POST': ['a_preprocessor_for_post'] }, postprocessors={ 'DELETE': ['a_postprocessor_for_delete'] } )
Cet exemple définit les préprocesseurs et les postprocesseurs pour GET (récupération de ressources uniques et multiples) et publier et supprimer les demandes. Les préprocesseurs et les post-processeurs fonctionnent sans valeurs de retour explicites; l'expérimentation est encouragée.
Conclusion
Cette partie a démontré la construction d'une API RESTful avec Flask et Flask-Rest-Reding, réduisant considérablement le code par rapport à la méthode précédente. La dernière partie de cette série explorera une autre extension du ballon populaire pour la création d'API RESTful, cette fois indépendamment de l'outil de modélisation de la base de données.
Ce message a été mis à jour avec les contributions d'Esther Vaati, développeur de logiciels et écrivain pour Envato TUTS.
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!