Créer une API RESTful à l'aide de Flask?
Le Flacon tutoriel site ici dit que pour créer une API RESTful, vous écrivez des classes qui étendent restful.Resource
puis les ajouter à l'API par:
app = Flask(__name__)
api = restful.Api(app)
class HelloWorld(restful.Resource):
def get(self):
return {'hello': 'world'}
api.add_resource(HelloWorld, '/')
Cependant, j'ai regardé quelques tutos que tout simplement utiliser les fonctions avec le @app.route('/path')
décorateur que je suis plus habitué à voir dans le Flacon apps. Par exemple, iciils ont:
@app.route('/todo/api/v1.0/tasks', methods=['GET'])
def get_tasks():
return jsonify({'tasks': tasks})
Et ici:
@app.route('/')
def api_root():
return 'Welcome'
Quelle est la différence entre l'utilisation de la restful.Resource
classe et simplement décoré de fonctions le cas échéant? Si il n'y a pas de différences, que dois-je faire par la convention, afin de créer une API RESTful?
source d'informationauteur ujvl
Vous devez vous connecter pour publier un commentaire.
Réponse courte:
reposant.La ressource est à partir d'un Flacon-Sommeil extension, ce qui n'est pas le Flacon lui-même. Miguel de tutoriel utilise Flacon d'écrire une interface restful.
Réponse longue:
Tout d'abord, avec Flacon, il y a un certain nombre de Flacon extensions. Bien qu'ils travaillent ensemble, ils sont des paquets séparés et sont écrits par des auteurs individuels. Flacon-Sommeil est une extension pour Flacon.
De Miguel tutoriel vous explique comment vous pouvez faire une api restful à l'aide de Flacon en lui-même.
Flacon-Sommeil dans le but de sauver certains d'entre nous de ré-inventer la roue, promet de transformer une classe personnalisée(ou un custom Python structure de données) à un service web restful.
En outre, le Flacon aussi documenté l'utilisation de MethodView pour permettre aux développeurs d'écrire leur propre Api restful. En parallèle, Flacon Agité promet à son tour un SqlAlchemy classe dans un service web restful.
Une mise à jour(18/07/2016), flacon-api transforme une fonction/afficher dans une interface restful et est conçu par le même auteur(Tom Christie) de django cadre reposant.
Il ya beaucoup de routes pour les Roms.
À l'aide de méthodes à la place de classes peuvent rapidement devenir source de confusion lorsque beaucoup de points sont nécessaires. Classes et/ou les ressources sont une meilleure façon de séparer et de découplage de la logique. En Plus de votre code devient beaucoup plus lisible et plus facile à modifier/corriger
À l'aide de flacon-sommeil est probablement la meilleure façon, bien que je vais avoir un peu de travail à faire pour créer le plan de votre api, la configuration de routage, de la manipulation des paramètres de la requête, et beaucoup de choses que tous les api besoins, qui devient assez gênant.
J'ai construit ce léger-cadre sur le dessus du flacon-sommeil qui vous permet de construire restful api facilement sans se soucier de tout le câblage nécessaire, et de se concentrer sur la définition de vos api et du codage de la logique métier. Vous pouvez le vérifier ici: https://github.com/sebastiandev/peach
Il est plus orienté pour les bases de données NOSQL, mais c'est seulement parce que le proxy pour la base de données qui vient en tant que par défaut pour mongodb, si vous avez besoin de sql, vous pouvez simplement faire un proxy pour sqlachemy (ou attendre jusqu'à ce que je trouve le temps de le construire).