HTTP PATCH中缺少web2py request.post_vars

时间:2016-10-17 04:49:02

标签: rest web2py

我希望利用HTTP PATCH来更新记录中的单个字段(将其与PUT区分开来,PUT应更新整个记录)。然而,由于gluon / globals.py中的parse_post_vars中的这一行,似乎post_vars(我计划保存更新的字段)不会在请求对象中被解析:

and env.request_method in ('POST', 'PUT', 'DELETE', 'BOTH')):

我们是否有理由在该列表中没有PATCH?

1 个答案:

答案 0 :(得分:1)

注意,request.post_vars旨在成为类似字典的对象(从表单数据或JSON派生),但补丁文档不一定是。例如,如果您按照here所述发送类型为application/json-patch+json的补丁,则生成的Python对象将是一个列表。

由于补丁文档的格式很灵活,您应该自己解决并应用它们。您始终可以通过request.body.read()直接阅读补丁文档。

我认为web2py可以自动解析application/merge-patch+json类型的补丁文档(如here所述)。请随意向developer's list发布有关这种可能性的信息。