Ley*_*thG 0 asp.net rest asp.net-web-api
我有一个 Web Api RESTful 服务,它有一些 POST 端点来将新对象插入数据库。我们希望将对象名称接受的最大字符数限制为 20 个。数据库、API 或 UI 是否应该处理此问题?
显然,我们可以在任何一层上阻止超过 20 个字符。但是,如果它通过了 UI,则表单已提交。那时,我们希望服务层或数据库层返回一个信息性的解释,说明为什么它不被接受。处理这个问题的最佳做法是什么?
DB、API 或 UI 应该处理这个问题吗?
至少,您的 API必须处理数据验证。每个人对于 REST 应该如何工作都有自己的看法,但一种好的方法是返回 HTTP 400(错误请求),其中一些内容包括有关请求为何错误的信息。
除此之外,客户端检查绝对是一个额外的好处。理想情况下,您永远不会看到此代码在您的 API 层受到攻击。客户端还应该能够以优雅的方式处理潜在的“错误请求”响应。如果 API 和客户端应用的规则之间存在不匹配,您将希望客户端认识到其操作未成功,并显示适当的错误以帮助用户响应问题。
如果您允许数据通过批量导入或其他方式绕过 API 层,那么数据库级检查也是一个好主意。如果没有,数据库可能只是您在更改验证要求时必须记住更改的又一个地方。
| 归档时间: |
|
| 查看次数: |
370 次 |
| 最近记录: |