私がRESTで読んだすべての記事と書籍は、ハイパーメディアの回答に「自己」relリンクを追加することの重要性を繰り返していますが、その理由や使用例についてはすべてが明白です。ハイパーメディアAPIでの自己リンクの重要性は何ですか?
なぜ自己リンクを追加する必要があり、どのように役立つのですか?
私がRESTで読んだすべての記事と書籍は、ハイパーメディアの回答に「自己」relリンクを追加することの重要性を繰り返していますが、その理由や使用例についてはすべてが明白です。ハイパーメディアAPIでの自己リンクの重要性は何ですか?
なぜ自己リンクを追加する必要があり、どのように役立つのですか?
主な理由は、クライアント(および一部のサーバーでも)が表現のある場所を格納していないことです。たとえば、wget http://.../foo.json
の場合、表現はディスクに保存されますが、フェッチされたURIは表示されません。表現に埋め込まれない「自己」のリンクがない場合、これは二つの問題が発生しません:ドキュメント内の
相対リンクはもはや解決に対するベースを有していてもよく、したがって、「壊れた」になります。および
クライアントには、たとえばどこに、というような埋め込み概念がありません。 PUT
文書を変更した場合、文書をサーバーに送り返します。いくつかのクライアントはこの情報を独立して管理していますが、ほとんどのクライアントはそうしません。
それは表現が人生うまく外のHTTPの会話を持っていることを理解することが重要だ、とさえ他のプロトコル(電子メール、FTP、本の中で、など)を介して転送することができます。経験豊富なメディア型設計者は、通常、「自己」リンクを含むことになる。
リソースが返されると、完全な表現ではない可能性があります。 self
リンクは完全な表現にアクセスするためのURLを提供する必要があります。
GET /objects
[
{
"name": "tech",
"links": [
"rel": "self",
"href": "/objects/1"
]
},
{
"name": "book",
"links": [
"rel": "self",
"href": "/objects/2"
]
}
]
GET /objects/1
{
"name": "tech",
"ratio": 1,
"precision": 2,
"links": [
{
"rel": "self",
"href": "/objects/1"
}
]
}