1

私は非常に複雑な Web API を構築していますが、サブリソースの作成について少し混乱しています。

具体的には、ゲームの観点から考えると、

ゲームはラウンドに属し、ラウンドはシーズンに属し、シーズンは大会に属します。その親コン​​テキストの外では、各アイテムに関連性はありませんが、関係なくリソースです。

ゲームを作成するには、どの URL パターンを使用すればよいのでしょうか。

//full tree map
PUT /competitions/1/seasons/2/rounds/3/games

//each sub resource has it's own top level, but must be created under 
//it's parent
PUT /rounds/3/games 

//each sub resource has it's own top level, and we include the parent 
//id in the resource body.
PUT /games

たとえば、ゲームには統計があり、統計にはビデオがあるため、完全なツリーマップを処理すると非常に重くなる可能性があります。おそらくすべてをサポートする必要があります。三?

4

1 に答える 1

2

典型的なパターンは、トップ レベルをリソースの正規 URI にすることですが、完全なツリーからの GET を許可します。そう:

GET /competitions/1/seasons/2/rounds/3/games

GET /games
GET /games/12
PUT /games
    competition=1
    season=2
    round=3

これを行うには、サポートの負担がわずかに大きくなります。それは価値があると確信していますか?

GET /games?competition=1&season=2&round=3

も合理的です。大会リソースの応答の一部は、その大会のシーズンへのリスト URI になると思います。

PUT、POST、PATCH、または DELETE をサポートする複数の URI を持たないことをお勧めします。あなたのコードはすぐにサポートの頭痛の種になります。

于 2013-08-13T11:54:45.993 に答える