首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >HATEOAS书签URL访问

HATEOAS书签URL访问
EN

Stack Overflow用户
提问于 2015-06-11 04:07:31
回答 1查看 252关注 0票数 6

我正试着把我的头转到哈特奥。

让我们来看看一个例子。客户端将浏览器加载到getemails.com。简单地说,让我们假设对getemails.com的调用击中了服务器,并返回了一个电子邮件列表。每封电子邮件都有一个链接,可以让用户获得更多的细节。就像这样:

代码语言:javascript
复制
{[
    {
        "id": "1",
        "subject" : "subject something",
        _links:[
            "email":"http://getemails.com/emaildetail/1"
        ]
    }
    {
        "id": "2",
        "subject" : "subject something else",
        _links:[
            "email":"http://getemails.com/emaildetail/2"
        ]
    }
]}

这将显示给表上的用户。然后,用户单击一行,客户端代码将从选定行的_links下获取电子邮件url,并对服务器进行调用。然后,它将使用电子邮件详细信息更新页面(假设为SPA)。它还将把地址更新到getemails.com/#email/1

现在,如果用户书签getemails.com/#email/1位置怎么办?既然客户端应用程序还没有加载邮件列表,它怎么知道调用服务器以获取更多信息的url是emaildetail/1呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-17 18:21:18

你的问题是你不是真正的RESTful。像id字段一样公开内部工作是你应该避免的陷阱。该ID仅在服务中有意义,不应像您所做的那样在服务之外传播。

相反,使用一个指向每个资源的自链接,所以当您请求“电子邮件”关系时,您应该得到一个电子邮件资源(想必)。

代码语言:javascript
复制
{
  "subject" : "subject something",
  "text" : "yadda yadda yadda...",
   "from" : "here@there.com",
   _links:{
       "self":"http://getemails.com/emaildetail/1"
   }
}

在SPA的片段标识符中使用该自url。现在,当用户书签这个完整的url getemails.com/#http://getemails.com/emaildetail/1 (使用一些URL编码)时,您的应用程序将知道要检索和显示什么资源。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30771399

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档