在 REST api 中解析参数的最佳方式

Best way to parse arguments in a REST api

我正在构建一个基于 flask Restful 的 Rest API。我很困惑什么是解析我正在等待的参数的最佳方法。

信息:

Table 架构:

-----------------------------------------
| 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 模板一样创建某物并在传回之前用它验证客户的请求。

Ofc 第一个选项更简单,但第二个选项不会对我的数据库造成不必要的负载,尽管可能会变得相当复杂。

欢迎对以上两个或任何其他建议提出任何意见。

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

最好的情况,如果您可以在客户端错误检查 json,请执行此操作。 无论如何,错误检查 python 中的 json。您必须始终假设网络 受到损害,您将获得垃圾值/恶意请求。 我在某处读到的设计原则(我认为是清洁代码)是严格的 输出但在输入上放轻松。

为什么你不考虑使用像 marchmallow 这样的库,因为 flask-restful 文档建议这样做?它将以适当且非自定义的方式回答您的问题,就像您是否愿意从头开始进行验证一样。