【问题标题】:Correct way to return REST Api response返回 REST Api 响应的正确方法
【发布时间】: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 - 服务器错误)

标签: spring-boot spring-mvc


【解决方案1】:

可能有一个使用 Http 错误系统的解决方案,但作为替代方案,我会在双方都使用 if 语句,它检查用户是否已经存在,如果存在,它会发送 user:error 或类似的东西。然后客户端必须检查 anwser 是用户还是错误,如果是错误,则会显示预编程的消息

【讨论】:

    猜你喜欢
    • 2018-07-02
    • 2016-09-12
    • 2015-09-21
    • 2014-09-24
    • 2021-07-19
    • 2018-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多