Рассмотрят следующее соотношение между двумя ресурсамиРазоблачение RESTful конечных точек для одного до многих отношений
- Колледжем имеет много Факультетов
- факультета принадлежат колледжа
Очевидно, что факультет не является ресурсом первого класса здесь.
Теперь мне нужны конечные точки для следующих операций.
- Создайте новый факультет в этом колледже этой ферме. Один из возможных способов сделать это в двух операциях.
POST /faculties/
PUT /college/1/faculties
- Удалить факультет из этого колледжа. Снова две операции
GET /college/1/faculties
: Список связанных факультетов. Каждый из них будет содержать собственный URL-адрес, например/faculties/1
.DELETE /college/1/faculties/1
: URL-адрес выглядит лучше, но как разоблачить этот URL-адрес?
- Добавить один или несколько факультетов в этом колледже.
PUT /college/1/faculties
, который принимает полный список факультетов этого колледжа.
- Удалите этот конкретный сектор целиком.
DELETE /sectors/1
: Выглядит хорошо, но необходимо позаботиться о кеше/faculties/1/sectors
.
Что бы лучший подход в этом случае? Я читал об разоблачении членских ресурсов, но при таком подходе, если в колледже есть 10 факультетов, для получения всех из членства потребуется 10 отдельных HTTP-звонков.
Кроме того, это всего лишь одна небольшая часть полного дерева отношений. Чтобы продлить это еще, говорят, что система имеет
- Факультеты имеет много Факультеты
- Департамент имеет много лабораторий так далее.
И кроме того, в архитектуре RESTful клиент никогда не должен заполнять URL-адреса.
Любое предложение?
Как в стороне, я думаю, вы должны быть совместимы с использованием множественного числа - вы используете сингулярным для колледжа, множественного числа для факультетов и секторов. Лично я всегда использую единственное число, потому что мне нравится путь к имени ресурса. Не важно, что вы выбираете, но будьте последовательны. – justAnotherUser