2013-08-13 2 views
1

Я строю довольно сложный веб-API, но кое-что, о чем я немного смущен, - это создание вспомогательных ресурсов.API Design для вспомогательных ресурсов?

В частности, думаю, что в плане игры,

Игра относится к круглым, в раунде сезона, сезона к конкуренции. За пределами родительского контекста каждый элемент не имеет значения, но они являются ресурсами независимо.

Так что я задаюсь вопросом, каким должен быть мой шаблон 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 

Я предпочел бы иметь/игры, как это собственный верхний уровень, как она идет глубже, например, игра имеет статистику, и статистика имеет видео, чтобы делать полную карту дерева может быть довольно тяжело ручка, возможно, я должен поддерживать все три?

ответ

2

Типичным примером было бы сделать верхний уровень каноническим URI для ресурса, но разрешить GETs от полного дерева. Таким образом:

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 в сезоны в этом соревновании.

Я предлагаю не иметь несколько URI, которые поддерживают PUT, POST, PATCHes или DELETE. Ваш код быстро станет головной болью для поддержки.

Смежные вопросы