9

私はこの問題をどのように進めるかを決めることができないという問題を抱えています..そして私はこれを解決するための標準的な方法があるかどうかを知る必要があります..またはあなたたちがこの問題について何か素晴らしい意見を持っているかどうか。

学習目的で非常に基本的なAPIの構築を開始しました。APIはシンプルなミュージックストアです。ストアには、アーティストを必要とするアルバムがいくつかあります。

したがって、関係はアーティスト<--- 1 ----- * --->アルバムであり、アルバムが存在するためには、アルバムにアーティストが含まれている必要があります。しかし、アーティストはアルバムを必要としません。

今問題に...

この関係のため、新しいアルバムを作成する場合は、アルバムデータを投稿する必要があります。また、Aristデータ全体を投稿する必要があります。アーティストのIDだけでなく、アーティスト全体も投稿する必要があります。あなたが私に尋ねれば非常に効果的です..それ以来、多くの不要です。

ご覧のとおり、これを解決するには2つの方法があります...アルバムデータ/オブジェクト全体を投稿し、オブジェクトのアーティストデータにアーティストを参照するIDのみを含めることを許可します。

したがって、投稿する代わりに:

{
"Name":"AlbumName",
"Description":"Some description for the album",
"ReleaseYear": "1992",
"Artist" {
    "Name":"Some artist",
    "Id":"12345",
    "Biography":"Lorem ipsum dolor sit amet"
    }
}

私はこれを行います:

{
    "Name":"AlbumName",
    "Description":"Some description for the album",
    "ReleaseYear": "1992",
    "Artist" {
        "Id":"12345"
        }
    }

オプション2は、実際にこれに固有のルート/ URLを設定することです...例:/ api / Artists / {artistid} / album次に、アルバムオブジェクトをそのURLに投稿するだけです。

しかし、私が言ったように..私はここで何が正しくて何が間違っているのか本当にわかりません..またはこれを処理する標準的な方法はありますか?

前もって感謝します!

4

2 に答える 2

8

私はこのようなものを提案します。

POST /musicstore/artist/343/albums

{
    "Name":"AlbumName",
    "Description":"Some description for the album",
    "ReleaseYear": "1992",
}

アーティスト343のアルバムのコレクションの子としてリソースを作成する行為は、アーティストとアルバムとの間の関係を暗示的に作成する。ペイロードで指定する必要はありません。

于 2013-03-11T15:14:18.313 に答える