と の 2 つのリソースを扱うことをお勧めしstudent
ますclass
。
student
次の URI を使用して取得できます。
http://home/someapi/v1/students/1
ここで複数形を使用することに注意してください。複数形を使用する理由については、http: //blog.apigee.com/detail/restful_api_design_plural_nouns_and_concrete_names/の記事をお読みください。
student
を 1 つの に登録できる場合class
、それはこの学生のプロパティである可能性があるため、次の JSON ドキュメントを返すことができます (例):
{
"student": {
"id": 1,
"firstName": "John",
"lastName": "Doe",
"class": {
"id": 10,
"name": "Room Y"
}
}
}
class
次の URIで特定のものを取得できます。
http://home/someapi/v1/classes/10
次の URI を使用して、特定のクラスのすべての生徒を取得できます。
http://home/someapi/v1/classes/10/students
ここで、と の間にNN関係がある場合、JSON での表現に関する私の最初の提案が変更されます。実際には、リレーションはの埋め込みプロパティではなく、リソースのコレクションになるため、次の URI を使用する必要があります。students
classes
student
class
class
student
http://home/someapi/v1/students/1/classes
「生徒 #1 のすべてのクラスを取得する」という意味です。
class
とstudent
リソースの両方を公開できます。2 つの異なることを説明しているため、どちらがメインかを決める必要はありません。/students
とがあると、 とを/classes
作成でき、それらをリンクすることができます。students
classes
?foo=bar
最後に、フィルタリングの目的でクエリ パラメータ ( ) を使用することをお勧めします。