Один хороший способ сузить требования к дизайну любого ресурса - представить, что GET на его URI будет отправлять клиенту точно такое же представление, которое клиент отправит на этот URI, и наоборот.
Когда вы размещаете представление PlayerCommand, я предполагаю, что вы хотите создать новый ресурс PlayerCommand.Когда вы возвращаете такую вещь из GET на ресурсе PlayerCommand, что вы возвращаете?Полные объекты Player, Game и Command, встроенные в ответ?Лучше не делать этого;вместо этого возвращайте URI, указывающие на эти ресурсы.
Аналогично, представление POSTed не должно включать полные представления ресурсов Player, Game или Command;вместо этого он должен содержать идентификаторы для них в форме URI.Затем сервер может хранить ссылки без необходимости создавать для них новые объекты.Пример на основе JSON:
{"self": "/playerCommand/9803495",
"player": "/players/84",
"game": "/games/22980",
"command": {"base": "/commands/fight",
"params": ["kick", "Darrel"]
}
}