我有一个使用HAL链接的RESTful服务。有一个客户资源和一个preferredCard资源。客户并不总是选择首选卡。
由于用户必须登录,因此无需传递客户或卡ID,我们将从其身份中删除。
PreferredCard网址:GET: <root>/<version>/preferredCard
我想我有两个选择。
1)在客户上添加preferredCard链接,如果没有preferredCard则返回404(NotFound),否则返回preferredCard资源。
2)如果客户不存在,请不要在客户上显示指向preferredCard的链接。
关于什么是最好的想法。担心在第一个选项中,当客户端没有真正搞砸时,我将返回4XX
由于
答案 0 :(得分:0)
如果客户资源没有preferredCard,那么您可能需要提供createPreferredCard
或selectPreferredCard
- 链接,而不是仅仅将链接隐藏到404。
这对我来说看起来很干净,因为你隐藏的东西不起作用,但提供选项。
答案 1 :(得分:0)
我认为你需要处理这两种情况。
如果您知道用户没有首选卡,请不要向他们提供指向无法使用的内容的链接。也许给他们一个选择一个的替代链接。
同样,如果该URL可以存在,用户可以稍后再回来,即使它已被删除。在这种情况下,您可能需要考虑自定义404页面。 404错误会让用户知道他们想要的资源无法找到,但你仍然可以提供一些内容,也许是解释发生了什么的事情(没有当前的首选卡)并提供一些有用的链接,在这种情况下指向他们可以创建/选择首选卡的页面的链接。