Marshmallow和Flask-RESTPlus,它们应该如何一起使用?



我正在使用Flask- restplus来封送Flask服务器中的响应。我也开始使用这个包来解析来自客户端的HTTP请求,当我在他们的网站上偶然发现了这个巨大的警告:

警告

Flask-RESTPlus的整个请求解析器部分将被移除并将被关于如何与其他集成的文档所取代能更好地完成输入/输出的包(比如marshmallow)。

然后切换到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是一个用于转换的ORM/ODM/框架无关库复杂的数据类型,如对象,从本地Python传入和传入数据类型。

我在web上看到过这样的例子,人们使用Marshmallow来格式化输出响应,使用Flask来验证预期的数据(使用@api.expect)。哪种方法更好?

另外,我想知道这是否有意义使用Flask RESTPLUS ?这个库的唯一兴趣似乎是自动生成Swagger UI文档。除此之外,Marshmallow可以做Flask RESTPLUS所做的一切。也许我遗漏了什么,有人能帮忙或评论吗?

感谢

请进一步留意网站上的警告:

别担心,如果你现在有代码使用它,并希望继续这样做,它不会很快消失。

开发人员将在将来发布如何集成最佳Marshmellow的文档。

目前运行良好。然而,这是使用Flask RESTPLUS和棉花糖的正确方法吗?在棉花糖的网站上,对于这个包装的具体用法没有明确的说明

Flask是一个微框架:这对你来说意味着你的应用程序的大部分实现取决于程序员,因为它缺乏在一个成熟的web应用程序框架中常见的大多数功能。Django, Pyramid等)没有"一种方法",也只有"一种方法"。在里面做事。像数据验证这样的实现细节取决于你通过插件、库甚至自己实现它们(不推荐)。

我想知道这是否有意义使用Flask RESTPLUS ?

从我在Flask-RESTPlus的快速入门页中看到的情况来看,它提供了有用的模型,可以方便地为资源、端点、参数解析和数据格式化公开REST动词。但是,这个问题主要取决于你和你的应用程序需求。

最新更新