self
リンクとJSON APIのリンクrelated
の違いは何ですか?JSON APIの自己対関連URL関連リンク
答えて
私は、実際に返信したものに対して、わかりやすく、判読可能な答えを見つけ出すことが非常に困難でした。 JSONのAPIで、例えば
彼らは、次のJSONを持っている:{
"links": {
"self": "http://example.com/articles",
"next": "http://example.com/articles?page[offset]=2",
"last": "http://example.com/articles?page[offset]=10"
},
"data": [{
"type": "articles",
"id": "1",
"attributes": {
"title": "JSON API paints my bikeshed!"
},
"relationships": {
"author": {
"links": {
"self": "http://example.com/articles/1/relationships/author",
"related": "http://example.com/articles/1/author"
},
"data": { "type": "people", "id": "9" }
},
"comments": {
"links": {
"self": "http://example.com/articles/1/relationships/comments",
"related": "http://example.com/articles/1/comments"
},
"data": [
{ "type": "comments", "id": "5" },
{ "type": "comments", "id": "12" }
]
}
},
"links": {
"self": "http://example.com/articles/1"
}
}],
"included": [{
"type": "people",
"id": "9",
"attributes": {
"first-name": "Dan",
"last-name": "Gebhardt",
"twitter": "dgeb"
},
"links": {
"self": "http://example.com/people/9"
}
}, {
"type": "comments",
"id": "5",
"attributes": {
"body": "First!"
},
"relationships": {
"author": {
"data": { "type": "people", "id": "2" }
}
},
"links": {
"self": "http://example.com/comments/5"
}
}, {
"type": "comments",
"id": "12",
"attributes": {
"body": "I like XML better"
},
"relationships": {
"author": {
"data": { "type": "people", "id": "9" }
}
},
"links": {
"self": "http://example.com/comments/12"
}
}]
}
ここでこの行:
"self": "http://example.com/articles/1/relationships/author"
は、 "リレーションシップ・リンク" ここ
この行です:
"self": "http://example.com/articles/1/relationships/comments"
も、「リレーションシップ・リンク」
ですええ、私は他の一つはrelated
と呼ばれているので、それは、混乱して知っています。これらのリンクの目的は何ですか?目的はのみの関係を管理しています。あなたがGET /articles/1/relationships/comments
を行うと言うとではなく、はコメントの情報を返します。 は、リソースタイプ/ IDの配列と、メタデータやリンクのような他のものを返します。例:
{
"data": [{
"type": "comments",
"id": "13"
}, {
"type": "comments",
"id": "29"
}],
"links": {
"self": "http://example.com/articles/1/relationships/comments",
"next": "http://example.com/articles/1/relationships/comments?page[offset]=2",
"last": "http://example.com/articles/1/relationships/comments?page[offset]=4"
},
"meta": {
"copyright": "Copyright 2015 Example Corp.",
"authors": [
"Zach Aysan"
]}
}
これはなぜ便利ですか?時々我々はちょうどリソース(コメント、作成者)自体ではなく、関係を削除したいので。たとえば、ユーザーテーブルからユーザーを削除しないDELETE /articles/1/relationships/author
を実行した場合、そのユーザーは作成者として削除されます。いくつかのコメントのみを削除するには、PATCH /articles/1/relationships/comments
を実行し、保存したいコメントのみを含めます。ただし、実際のコメントが正しいと思われる場合は、バックエンドが実際のコメントを削除する可能性があることに注意してください。 (関連記事のないコメントは何ですか?)
他のリンクはどうですか?なぜ/people/9
の代わりに/articles/1/author
なのですか?記事の著者は、要求の間にを変更する可能性があり、GET /articles/1/author
は常にのという著者を返します。これは通常、PATCH /articles/1/author
のようなものをサポートする必要はありません。なぜなら、通常、リソース自体で変更を指示する方が安全だからです。 PATCH /people/9
、記事の編集ページで誰かが自分のアバターを変更した場合など。たとえ管理者がPATCH
が正しいリソースに移動したという記事の作者を変更したとしても。
私は知っています。それは少し面倒ですが、Ember Dataのようなものはすべて一緒にスナップしなければならないことが分かっています。
- 1. MetaUMLのクラス自己関連
- 2. エンティティフレームワークの共通の連絡先(自己多対多の関係)
- 3. 自己参照関連のEctoクエリ
- 4. 自己参照「双子」has_oneの関連
- 5. Rails自己および関連
- 6. Ruby On Rails自己結合関連
- 7. オープニング関連のリンク
- 8. ElfinderClientサーバーAPIアラビア語関連リンク言語
- 9. Railsでのコピーとの自己参照の関連付け
- 10. JSONAPI - リンクリソース内の自己と関連の違い
- 11. 複数の自己参照has_many:Rails 4の関連付け。
- 12. rails:モデル間の関連付けで「自己」を使用
- 13. CanCanCanルールの自己参照関連によるフィルタ
- 14. C++での自己連結
- 15. デバイス関連リンク言語(ロケール)
- 16. イベントテーブルから関連レコードを抽出する自己結合?
- 17. クエリ-自己結合、関連レコードを含む
- 18. LINQクエリヘルプ - 多対多関連
- 19. Objective-C関連オブジェクト対NSMapTable
- 20. サーバーに関連するURL
- 21. Google Geocode API - 関連性
- 22. 主な方法 - JSON関連
- 23. フラスコとJSONは関連
- 24. CakePHPの多対多の関連団体へのリンク
- 25. ポリモーフィックな関連:API仕様
- 26. Grails 3 JSONビューカスタムレンダリング1対多の関連付け
- 27. Gitのリンクに関連するコミット
- 28. Rails多対多:関連付け
- 29. 春のセキュリティログイン/ログアウトURL関連の問題
- 30. CUBA:多対多関連の属性