REST APIのリンクrel =“ self”のポイントは何ですか?


11

HTMLドキュメントで以下をよく見ます

<link rel="self" href="http://example.com/something">

またはJSONでこれのように

 link: {
     rel="self",
     href="http://example.com/something"
 }

またはXMLで

 <atom:link rel="self" href="http://example.com/something" />

だから私はいくつかの質問がありました:

  1. なぜこのリンクを含めるのですか?それはどのような利点をもたらしますか?(それには理由があり、それは単なる「良い習慣」のお守りではないことを教えてください)
  2. このリンクをクライアントでどのように活用すればよいですか?このリンクの使用例は何ですか?
  3. このリンクを使用すべきでないのはいつですか?それを含めるのはいつ無意味ですか?

3
「ここをクリックしてこのページをブックマークする」は、「自己」参照を利用できるユースケースです。より一般的には、RESTはステートレスであるため、サーバーはリクエストがどこから来たのかを知る方法がないため、返されるページが独自のURIを知る必要がある可能性は十分にあります。
ロジャー

このコメントはかなり良い答えになるようです:)
Mike Chamberlain

回答:


8

これは自己参照であるため、クライアントはIRI(http://example.com/something)が表現の対象となるリソースの識別子であることを認識します。

あなたのリソースは、例えば、複数の識別子を持つことができたときにそれは重要になることhttp://example.com/users/1http://example.com/users/1?fields="name"同じリソースを識別することができますが、それらのGETは異なる表現を引き起こすことができます。

HALなどのメディアタイプごとに、これを使用して埋め込みリソースも識別します。例えば:

{
    "nick": "John",
    "_embedded": {
        "cars": {
            "items": [
                //...
            ],
            "_links": {
                "self": {
                    "href": "http://example.com/users/john/cars"
                }
            }
        }
    },
    "_links": {
        "self": {
            "href": "http://example.com/users/john"
        }
    }
}

IRIとは それらのen.wikipedia.org/wiki/IRIのいずれか?
MarianPaździoch15年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.