2015-09-11 8 views
8

以下のJSONAPIリソースでself and relatedの参照が異なるのはなぜですか?彼らは同じリソースを指していませんか? /articles/1/relationships/tags/articles/1/tagsの違いは何ですか?JSONAPI - リンクリソース内の自己と関連の違い

{ 
    "links": { 
    "self": "/articles/1/relationships/tags", 
    "related": "/articles/1/tags" 
    }, 
    "data": [ 
    { "type": "tags", "id": "2" }, 
    { "type": "tags", "id": "3" } 
    ] 
} 

答えて

8

ここでは、https://github.com/json-api/json-api/issues/508について読むことができます。

/articles/1/relationships/tagsとの回答は、articlestagsの関係を表すオブジェクトになります。関係で接続されて関係していないリソースを操作する - この応答は、(データプライマリデータ属性に)必要なデータのみを与える

{ 
    "links": { 
    "self": "/articles/1/relationships/tags", 
    "related": "/articles/1/tags" 
    }, 
    "data": [ 
    { "type": "tags", "id": "2" }, 
    { "type": "tags", "id": "3" } 
    ] 
} 

:応答は、この(あなたがあなたの質問に入れてどのような)のようなものかもしれません。あなたがする場合はそれを言って、あなたはは、タグ(あなただけそれらを検索するアイデンティティを必要とする記事に属しを読んで、が記事にに(基本的に関係を更新)新しいタグを追加し、新しい関係を作成/articles/1/relationships/tagsと呼ぶことにしますサーバー)またはの記事タグを削除してください。 /articles/1/tagsは、彼らが持っている他のすべてのプロパティを持つ次データなどのタグで応答しますコールする一方

、(記事関係リンク、および他のトップレベルの属性など含ま,強調されたテキスト,リンクおよび/またはjsonapi)。

+0

リレーションシップを作成または削除しようとしている場合は、自己リンクにペイロードを送信する必要がありますか?また、これはどういう意味ですか:「どのタグが記事に属しているのかを読んでください(あなたはサーバ上でそれらを検索するためにアイデンティティが必要です」)記事に属するタグを読むにはどうすればいいですか?ルート/記事/ 1 /タグを訪問するのと同じではありませんか? – Jwan622

0

これらは異なっています。ここに私のプロジェクトの例があります。

あなたがこのような応答を取得しますGet http://localhost:3000/phone-numbers/1/relationships/contactを試してみてください:あなた { "links": { "self": "http://localhost:3000/phone-numbers/1/relationships/contact", "related": "http://localhost:3000/phone-numbers/1/contact" }, "data": { "type": "contacts", "id": "1" } } はおそらく、あなたが取得したいですattributesrelationshipsを得るませんでした。あなたがattributesrelationshipsを含め、必要なすべての情報を、取得した見ることができます { "data": { "id": "1", "type": "contacts", "links": { "self": "http://localhost:3000/contacts/1" }, "attributes": { "name-first": "John", "name-last": "Doe", "email": "[email protected]", "twitter": null }, "relationships": { "phone-numbers": { "links": { "self": "http://localhost:3000/contacts/1/relationships/phone-numbers", "related": "http://localhost:3000/contacts/1/phone-numbers" } } } } }

その後 あなたがこのような応答を取得しますGet http://localhost:3000/phone-numbers/1/contactをお試しください。

しかし、relationshipsは何らかの目的のために使用できることを知っておく必要があります。サンプルとしてhttp://jsonapi.org/format/#crud-updating-to-one-relationshipsをお読みください。

関連する問題