【问题标题】:Is it alright to return an unsaved resource in a GET request instead of 404?在 GET 请求中返回未保存的资源而不是 404 可以吗?
【发布时间】:2021-06-11 21:02:14
【问题描述】:

我有一个 /user-profile REST API 端点,允许用户检索 (GET) 和更新 (PUT) 用户配置文件。此端点由前端的用户配置文件编辑器使用。

如果用户还没有配置文件,配置文件编辑器应在某些表单字段中设置默认值。此默认逻辑很复杂,需要驻留在 REST API 中。

我的问题是如何从 REST API 中获取默认值?

在 REST 中,当没有用户配置文件时,我们通常在 /user-profile 中返回 HTTP 404,但是如果我修改 /user-profile 使其返回具有默认值的未保存用户配置文件怎么办?但是,此未保存的配置文件无效,因为未填充某些必填字段。这是否违反任何 REST 最佳实践?

如果是这样,我想到的另一个解决方案是有两个端点:

  • /user-profile - 未找到时返回保存的用户配置文件或 HTTP 404。
  • /defaults/user-profile - 计算一些用户配置文件字段的默认值。当 /user-profile 返回 404 时,UI 会调用它。

这个解决方案显然实现起来更复杂,但它遵循通常的 REST 模式。

有更好的解决方案吗?

谢谢

【问题讨论】:

  • 不幸的是,这个问题是在征求人们的意见,这在 Stack Overflow 上显然是题外话。请参阅How to Ask 了解有关可以在此处提出哪些问题的信息。如果您想进行讨论,您应该查看聊天室,您可以在顶部栏右侧的 Stack Overflow 上找到这些聊天室。

标签: rest


【解决方案1】:

在 GET 请求中返回未保存的资源而不是 404 可以吗?

是的。

您,即原始服务器,是您资源的权威,给定的resource 是否具有当前表示完全由您自行决定。

保存或不保存用户配置文件的概念是隐藏在服务器统一接口后面的实现细节。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-07-27
    相关资源
    最近更新 更多