【发布时间】:2020-10-23 10:13:46
【问题描述】:
我正在为网站开发 REST API,假设我有一个 POST 端点('/users/create'),如果用户不存在,我想创建该用户并返回用户。 这看起来像:
@PostMapping(value = "/users/create")
public User createUser(@RequestBody UserDTO form)
这样做的问题是,当成功创建用户时,只需返回响应代码 200 的用户就没有问题。问题出现在我进行输入验证时,例如,使用该电子邮件的用户已经存在并且我想要返回 user: null 和某种关于在用户创建中具体失败的消息。我考虑了多种可能性,例如创建一个自定义对象,该对象具有任何类型的对象(在本例中为用户)和消息的字段,以及使用 HttpServletResponse / ResponseEntity。他们似乎都将一些在我看来应该非常简单的事情过于复杂化了,我不知道哪种方法是最好的。第一次发帖,有点乱,请见谅。
【问题讨论】:
-
您可能有一个标准响应对象,其“数据”字段可以是用户或您希望返回的任何对象。它还可以有一个“成功”键,表示响应成功。这是除了 http 错误代码之外的所有内容(4XX - 客户端错误,5XX - 服务器错误)