En 2012, j'ai fait la connaissance de Flask sur pyconjp etc. et c'était un micro framework et j'ai eu l'impression qu'il pouvait être utilisé autant que faire un petit service. Après un certain temps, il a été question de créer une API REST à l'aide de RDB, mais j'écrirai mes impressions que j'ai eu du mal et que j'ai échoué avec Flask.
Classe MethodView facile à utiliser Il était vraiment facile de créer une API REST car si vous créez une classe qui hérite de la classe MethodView pour chaque point d'entrée et définissez la méthode get / post / put / delete, vous pouvez respectivement répondre aux requêtes GET / POST / PUT / DELETE.
N'utilisez pas POST pour mettre à jour les ressources J'ai fait une spécification qui accepte les mises à jour par POST pour les utilisateurs d'API, mais quand j'ai commencé à l'implémenter, j'ai pensé que ce serait gênant. Cette méthode n'était pas très adaptée pour utiliser SQLAlchemy comme ORM. Si vous créez l'API REAST avec POST / PUT / DELETE / GET, les développeurs et les utilisateurs seront heureux.
Flask-SQL Alchemy est difficile à utiliser. Flask-SQL Alchemy est également difficile à utiliser au-delà de l'exemple car il n'existe aucun exemple d'utilisation pouvant être utilisé comme référence. Il est plus flexible d'utiliser SQL Alchemy, et le code peut être utilisé pour d'autres traitements par lots, donc je pense qu'il vaut mieux ne pas utiliser d'extensions autant que possible.
Pas beaucoup de documentation Blueprint Lorsque le code grossit après un certain temps, je pense qu'un script est trop gros et je veux utiliser un module appelé Blueprint qui divise le code, mais cela n'a pas non plus de documentation et je peux l'utiliser en lisant le code Cela prend du temps et des efforts pour que cela devienne possible. J'ai abandonné la division en utilisant Blueprint et l'ai forcée dans un seul fichier.
Il est difficile de comprendre comment tester Concernant 3,4,5, je pense que cela se traduit par un manque de documentation / exemple de code en général. Flask a peu d'exemples d'utilisation, donc j'espère que la quantité d'informations dans cette section augmentera à l'avenir.
Impossible de recevoir les paramètres dans la demande DELETE Je ne l'ai pas remarqué avant de commencer à l'implémenter, alors sachez que si vous adoptez une spécification qui modifie les ressources au moment de la suppression, vous aurez des problèmes plus tard. ʻAjout` Correctement, j'ai obtenu les paramètres avec request.args ["hoge"] dans la requête DELETE comme ci-dessous. % curl -X DELETE "http://localhost:9999/users/100?hoge=100"
Quant à SQLAlchemy, j'ai essayé de l'utiliser en sachant que je l'avais utilisé pendant un certain temps, donc il était peut-être hors de propos. Je l'ai écrit parce que je suis peut-être accro à faire quelque chose avec Flask + SQLAlchemy en tant que débutant.
J'ai eu beaucoup d'expérience avec Flask en 2012, donc en 2013 j'essaierai d'ajouter de nouvelles expériences avec Django, qui a plus de fonctionnalités que Flask.
J'ai hâte de travailler à nouveau avec vous cette année.
Recommended Posts