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

问题描述:

我有一个使用HAL链接的RESTful服务。有一个客户资源和一个preferredCard资源。顾客并不总是选择首选卡。对404可能不存在的资源响应使用

由于用户必须登录,因此无需传递客户或卡片ID,我们会将其从身份中扣除。

PreferredCard网址:GET: <root>/<version>/preferredCard

我想我有两个选择。

1)在客户端添加preferredCard链接,如果没有preferredCard,则返回404(NotFound),否则返回preferredCard资源。

2)如果客户不存在,则不要在客户上显示优先卡的链接。

任何想法是什么在这里最好。担心的是,在第一个选项,当客户端并没有真的搞砸

感谢

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

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

如果没有preferredCard的客户资源,我返回4XX,那么你可能想提供一个createPreferredCardselectPreferredCard - 链接,而不是隐藏链接到404。

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