解析REST API中的参数的最佳方法

时间:2016-08-23 16:05:35

标签: python rest flask-restful

我正在构建基于flask Restful的Rest API。我很困扰解决我正在等待的论点的最佳方法。

信息:

表架构:

-----------------------------------------
| ID | NAME | IP | MAIL | OS | PASSWORD |
-----------------------------------------

完成工作的方法:

def update_entry(data, id):
    ...
    ...
pass

处理请求的资源:

def put(self, id):        
    json_data = request.get_json(force=True)
    update_entry(json_data, id)
    pass

Json格式:

{'NAME': 'john', 'OS': 'windows'}

我必须提到,我不知道以上所有内容是否与我的问题相关。

现在我想知道的是,在哪里检查客户端是否发送了我想要的参数或者请求中的密钥是否有效。 我想过几个选择,但我觉得我错过了最好的做法。

  1. 传递客户端发送到后端的任何内容,让错误发生并抓住它。
  2. 像json模板一样创建,并在传回之前验证客户端的请求。
  3. Ofc第一个选项更简单,但第二个选项不会给我的数据库带来不必要的负载,尽管可能会变得非常复杂。

    对上述两种或任何其他建议的任何意见表示欢迎。

2 个答案:

答案 0 :(得分:1)

为什么你不考虑使用像marchmallow这样的库,因为烧瓶文件提示它?它将以适当的非定制方式回答您的问题,为什么要从头开始验证是否正确。

答案 1 :(得分:0)

让数据库api捕获错误不是一个好主意。重复的数据库访问会妨碍性能。

最好的情况,如果你可以在客户端错误检查json,那就去做吧。 错误检查python中的json无论如何。你必须始终假设网络 被破坏,您将获得垃圾值/恶意请求。 我在某处阅读的设计原则(我认为清洁代码)是严格的 输出但输入很容易。