Je fais de l'info, et pas que, dans une boîte de 60 personnes, dont 4 ou 5 développeurs plus des ingénieurs qui peuvent coder en Python. On fait tout en Python. En gros.
Comme on fait pas mal de webservice, on s'est penchés sur la question aussi.
On a envisagé flask-restplus. On a même vu une présentation lors d'un meetup en présence du mainteneur, c'était intéressant. flask-restplus, c'est bien stable et tout, avec pas mal de fonctionnalités. Ce qui nous chiffonnait, c'était que la couche sérialisation / désérialisation était recrée dedans, plutôt que d'utiliser une bibliothèque existante. L'idée d'utiliser marshmallow a été abordée ici mais ça a jamais été fait dans flask-restplus, seulement dans des forks ou des patches.
Nous on aime bien marshmallow, d'autant qu'on peut générer les schémas d'API depuis les modèles de base de donnée (MongoDB ou SQL), donc on trouvait ça dommage. Surtout que l'environnement marshmallow propose déjà webargs pour injecter les requêtes parsées dans les fonctions de vue, et apispec pour exposer la doc Swagger.
Manquait une petite couche enrober tout ça. flask-apispec devait le faire mais c'était pas trop vivant et je comprenais pas le code, donc on a fait à notre sauce, puis on a extrait cette couche pour en faire une bibliothèque indépendant et quelques années plus tard, voilà flask-smorest : https://flask-smorest.readthedocs.io/.
J'ai soumis une proposition de conf à la PyCon 2019 pour présenter tout ça.
On a jamais touché à l'asynchrone parce qu'on a jamais eu ce besoin. Nos contraintes ne sont pas là. Si on devait le faire, je suppose qu'on essaierait de partir sur les bibliothèques qui sont "compatibles Flask" pour limiter les changements.
# WSGI : marshmallow + flask-smorest
Posté par jihele . En réponse au journal Python pour la rentrée 2019 - Hors Série - Python revient dans la course face à Node.js. Évalué à 7. Dernière modification le 03 octobre 2019 à 10:55.
Je fais de l'info, et pas que, dans une boîte de 60 personnes, dont 4 ou 5 développeurs plus des ingénieurs qui peuvent coder en Python. On fait tout en Python. En gros.
Comme on fait pas mal de webservice, on s'est penchés sur la question aussi.
On a envisagé flask-restplus. On a même vu une présentation lors d'un meetup en présence du mainteneur, c'était intéressant. flask-restplus, c'est bien stable et tout, avec pas mal de fonctionnalités. Ce qui nous chiffonnait, c'était que la couche sérialisation / désérialisation était recrée dedans, plutôt que d'utiliser une bibliothèque existante. L'idée d'utiliser marshmallow a été abordée ici mais ça a jamais été fait dans flask-restplus, seulement dans des forks ou des patches.
Nous on aime bien marshmallow, d'autant qu'on peut générer les schémas d'API depuis les modèles de base de donnée (MongoDB ou SQL), donc on trouvait ça dommage. Surtout que l'environnement marshmallow propose déjà webargs pour injecter les requêtes parsées dans les fonctions de vue, et apispec pour exposer la doc Swagger.
Manquait une petite couche enrober tout ça. flask-apispec devait le faire mais c'était pas trop vivant et je comprenais pas le code, donc on a fait à notre sauce, puis on a extrait cette couche pour en faire une bibliothèque indépendant et quelques années plus tard, voilà flask-smorest : https://flask-smorest.readthedocs.io/.
J'ai soumis une proposition de conf à la PyCon 2019 pour présenter tout ça.
On a jamais touché à l'asynchrone parce qu'on a jamais eu ce besoin. Nos contraintes ne sont pas là. Si on devait le faire, je suppose qu'on essaierait de partir sur les bibliothèques qui sont "compatibles Flask" pour limiter les changements.