Android最佳实践验证使用API​​,应用程序端或服务器端的表单?

时间:2017-12-19 00:17:38

标签: android django api validation

我再次提出一个关于android的新问题,我希望专家帮助我解决这个问题,以不断提高我的能力。

我正在使用改造来创建一个连接到API以添加新内容的应用程序,我使用我的应用程序中的表单执行此操作并且此表单需要验证,此时我在我的应用程序中实现了验证器并显示了使用setError()和requestFocus()的错误,所有这些都在应用程序端。

从我的API后端我正在使用Django与Django Rest Framework,并且我正在制作我的表单和序列化器,使用它的优点是如果我发布无效数据它会返回我作为响应json每个字段和它在列表中的错误,如下所示:

  {
    "errors": {
        "password": [
            "Required field."
        ],
        "email": [
            "Required field."
        ]
    },
    "error": true
}

我在这个案例中的问题是,处理表单验证器发布信息的最佳做法是什么?完全来自应用程序(空字段或无效格式),还是使用API​​中包含服务器端验证信息的响应?

我希望这不是一个糟糕的问题,我只是想知道哪一个是最好的解决方案,这是他们的优点。

由于

1 个答案:

答案 0 :(得分:2)

基于API的验证

优点:使用API​​验证可以更轻松地进行维护,因为如果其他一些前端应用程序使用它,则无需再次重新进行验证,也可以安全,因为可以通过使用工具(邮递员等)直接调用API来绕过前端验证

缺点:基于API的验证不是实时的,因为您需要先调用API才能知道输入是否有效,如果他/她是对用户会很麻烦完成填写表格后,当他/她提交时,他/她输入的信息有问题,并重复/再次更新。

应用内验证

优点:应用内验证可以是实时的,并且可以告诉用户他/她的输入在他/她输入后立即无效。用户可以使用错误的信息跳过填写表单的麻烦并等待提交只是为了知道他/她的输入是错误的并再次重复。

缺点:您可以阅读有关API专业知识的缺点,每次制作使用相同API的其他应用时,您必须反复执行此操作,并且在使用时也不一定API直接调用。 (黑客可以输入他/她想要的任何东西)。

结论:根据我的经验,API必须始终进行验证,以避免黑客直接在其上输入任何内容,如果他/她想要使用,则由前端应用程序决定在API方面进行验证或者他/她可以在前端实现它是实时的。

相关问题