2015-10-12 2 views
2

Я имею дело с древовидными ресурсами. Каждый ресурс item имеет children. Каждый тип child может быть content ресурс или subject ресурс - который определяется по type_id. (В будущем может быть больше типов детей).RESTful API - различные типы детских ресурсов

Какой URI следует использовать для создания нового ребенка для элемента?

POST /api/items/<item_id>/children 

(доставить type_id через JSON)

ИЛИ:

POST /api/items/<item_id>/children/contents 
POST /api/items/<item_id>/children/subjects 

ИЛИ: перенаправление в соответствии с type_id к:

POST /api/contents 
POST /api/subjects 

И затем, используя код GUID из новый ресурс для создания иерархического соединения.

Спасибо!

ответ

3

Если у ваших детей есть атрибут с именем type, который может быть subjects или contents, вы можете рассматривать это как любой другой атрибут, например. пола, который может быть мужчиной или женщиной.

В идеале, вы должны создать новый ребенок с

POST /api/items/<item_id>/children 

{ 
    "some_value": 50 
    "type": "subject", 
} 

или

POST /api/items/<item_id>/children 

{ 
    "some_value": 134 
    "type": "content", 
} 

Нет необходимости, чтобы сделать запутанный конечную точку для простого атрибута. Если вы сделаете это для атрибута type, вы также можете сделать это и для всех других атрибутов, что приведет к гораздо большему количеству конечных точек, указывающих на практически те же ресурсы, что вы не хотите.

Позже вы можете получить их по типу, например, получает все предметы были бы

GET /api/items/<item_id>/children?type=subject 
Смежные вопросы