Вопросы о возможности иметь разные модели для методов POST и GET в REST API задавались несколько раз, но я хотел бы уточнить один конкретный момент.Предположим, мы разрабатываем API для спортивных соревнований.
Модели и соответствующие ресурсы:
1) Player
{ "id" : 2,
"firstName" : "Nikolay",
"lastName": "Grigoryan",
.....
}
/ Players / 2
2) Турнир
{ "id" 1,
"name": "Some tournament",
"date" "01.02.2019",
.......
}
/ турниры / 1
3) Участник
{
"id": 2,
"tournament": { "id" 1,
"name": "Some tournament",
"date" "01.02.2019",
.......
},
"player": { "id" : 2,
"firstName" : "Nikolay",
"lastName": "Grigoryan",
.....
}
}
/ турнир / 1 / участники / 2
Когда я запрашиваю участников определенного турнира, это удобнодостаточно иметь отдельное поле по имени игрока, связанное с полной моделью вложенного игрока со всеми доступными полями.Но когда я создаю нового участника, ситуация выглядит для меня иначе.Я бы предпочел, чтобы в качестве тела POST указывался только playerId:
/ турнир / 1 / участники
POST
{
....,
playerId: 2,
.....
}
, но не
{
....,
"player": {
"id": 2,
....
}
}
Кажется, здесь нет необходимости иметь вложенную модель, но вместо этого достаточно только playerId, и по этой причине нет необходимости иметь вложенный объект только для хранения идентификатора.
Можно ли иметь такое упрощение модели дляPOST-запрос или они должны иметь одинаковую структуру?Вероятно, я упускаю что-то важное, делая такой вывод.Если это так, я был бы благодарен за объяснение, что именно.
Заранее спасибо.