Rest 对可能不存在的资源响应使用404

Rest 对可能不存在的资源响应使用404,rest,Rest,我有一个使用HAL链接的RESTful服务。有一个客户资源和一个首选卡资源。客户并不总是选择首选卡 由于用户必须登录,因此无需传递客户或卡id,我们将从其身份中提取 PreferredCard url:GET://PreferredCard 我想我有两个选择 1) 在客户上添加preferredCard链接,如果没有preferredCard,则返回404(未找到),否则返回preferredCard资源 2) 如果不存在首选卡,则不要在客户上显示指向该卡的链接 你有没有想过这里什么是最好的。担

我有一个使用HAL链接的RESTful服务。有一个客户资源和一个首选卡资源。客户并不总是选择首选卡

由于用户必须登录,因此无需传递客户或卡id,我们将从其身份中提取

PreferredCard url:
GET://PreferredCard

我想我有两个选择

1) 在客户上添加preferredCard链接,如果没有preferredCard,则返回404(未找到),否则返回preferredCard资源

2) 如果不存在首选卡,则不要在客户上显示指向该卡的链接

你有没有想过这里什么是最好的。担心在第一个选项中,我返回一个4XX,而客户并没有真的搞砸


谢谢

如果客户资源没有preferredCard,那么您可能希望提供一个
createPreferredCard
selectPreferredCard
-链接,而不只是隐藏指向404的链接


对我来说,这看起来是一个干净的方法,因为你隐藏了一些不起作用的东西,但提供了一些选项。

我认为你需要处理这两种情况

如果您知道用户没有首选卡,请不要给他们提供指向无法使用的内容的链接。也许给他们一个备选链接来选择一个

同样,如果该URL可以存在,用户可以随时稍后返回该URL,即使该URL已被删除。在这种情况下,您可能需要考虑自定义404页。404错误会让用户知道他们想要的资源找不到,但您仍然可以提供一些内容,也许可以解释发生了什么(没有当前的首选卡),并提供一些有用的链接,在这种情况下是指向他们可以创建/选择首选卡的页面的链接