解析API自己的超媒体链接

时间:2013-05-16 09:14:11

标签: api rest hypermedia

假设我们有一个RESTful API方法:

POST /people
{
    "name" : "John",
    "_links" : {
        "address" : {
            "href" : "/addresses/2"
        }
    }
}

您可以看到address有一个指向其他资源的链接。

要解析该资源的address_id,服务器是否应该:

  1. 分解网址并识别路线的“id”部分

  2. 甚至向自己发出一个卷曲请求,以获取该链接资源的address_id

1 个答案:

答案 0 :(得分:1)

我觉得,正如你可能做的那样,#2是应该完成的方式,而#1只是基于内部知识的黑客攻击。如果客户端发送了一个绝对URI的href,http://yoursite.com/addresses/2你还想使用#1,并尝试检测ID,该怎么办? 让我们假设您的站点使用已定义和记录的MIME类型发送地址资源表示。如果客户端发送了指向第三方URI的href值,该URI也返回了该格式的响应,并且假设您想要支持该格式,该怎么办?无论如何你必须实现#2。在那种情况下,没有什么理由将它用于您自己的(性能是主要的)。

老实说,我可能会做的就是#1,直到需要#2出现。