marshmallow - Marshmallow 和 Flask-RESTPlus,它们应该如何一起使用?
问题描述
我正在使用Flask-Restplus在 Flask 服务器中编组响应。当我在他们的网站上偶然发现这个巨大的警告时,我也开始使用这个包来解析来自客户端的 HTTP 请求:
警告
Flask-RESTPlus 的整个请求解析器部分将被删除,并将被有关如何与其他可以更好地执行输入/输出内容的包(例如棉花糖)集成的文档所取代。
然后我切换到Marshmallow来验证/解析 HTTP 客户端请求。因此,我的服务器中的工作流程是:
Client request (HTTP GET/POST) ...
--> process request with Marshmallow and validate/format data
--> do stuff with DB (read, update, create)
--> Format output response with Flask RESTPLUS
... Client response
到目前为止,这运作良好。但是,这是同时使用 Flask RESTPLUS 和 Marshmallow 的正确方法吗?在 marshmallow 网站上,对于这个包的具体使用没有明确的方向。文档只是说:
Marshmallow 是一个与 ORM/ODM/框架无关的库,用于将复杂的数据类型(例如对象)与原生 Python 数据类型相互转换。
我在网上看到过一些例子,人们使用 Marshmallow 来格式化输出响应,并使用 Flask 来验证预期数据(使用@api.expect
)。哪种方法更好?
另外,我想知道使用 Flask RESTPLUS 是否有意义?这个库的唯一兴趣似乎是自动生成 Swagger UI 文档。除此之外,Marshmallow 可以做 Flask RESTPLUS 所做的一切。所以也许我错过了一些东西,有人可以帮忙或评论吗?
谢谢
解决方案
进一步注意网站上显示的警告:
不用担心,如果您现在有代码使用它并希望继续这样做,它不会很快消失。
开发人员将发布文档如何在未来集成最好的 Marshmellow。
到目前为止,这运作良好。但是,这是同时使用 Flask RESTPLUS 和 Marshmallow 的正确方法吗?在 marshmallow 网站上,对于这个包的具体使用没有明确的方向
Flask 是一个微框架:这对您来说意味着您的应用程序的大部分实现取决于程序员,因为它缺少在成熟的 Web 应用程序框架(例如 Django、Pyramid)中常见的大部分功能等)并且其中没有“一种方式,只有一种方式”来做事。数据验证等实现细节由您通过插件、库甚至自己实现(不推荐)提供。
我想知道使用 Flask RESTPLUS 是否有意义?
从我在 Flask-RESTPlus 的快速入门页面中看到的内容来看,它提供了有用的模型,有助于为资源、端点、arg 解析和数据格式化公开 REST 动词。但同样,这个问题主要取决于您和您的应用程序要求。
推荐阅读
- jquery - AJAX 同时显示成功和错误消息
- google-cloud-platform - GCP Pub/Sub,如果已有活动订阅,您能否在新订阅上重播旧消息
- javascript - 提交谷歌表单后如何重定向网站?
- javascript - 如何为inet设置sequalize postgres模型类型?
- javascript - 允许非技术用户更改网站内容
- javascript - 将 laravel 刀片值绑定到 vue 中的模态模板
- javascript - Heroku 说“内部服务器错误”。代码有什么问题
- geometry - GPS 点在表示轨迹的线段上的投影
- cmake - FooTarget.cmake 和 FindFoo.cmake 的区别?
- python - 我可以将字符串存储在python数组中吗?