Если у меня есть два ресурса, где один создается из другого, где я должен поставить конечную точку создания?REST API Design: Где создать ресурс, который зависит от другого ресурса?
Пример:
У меня есть два ресурса, А и В, и я хочу, чтобы создать B.
B является простой класс, который ссылается на A, и пользователь, который создал его, как этот
public class B {
private A a;
private User user;
}
Информация о пользователе отправляется неявно с запросом HTTP, поэтому мне не нужны никакие параметры для этого.
Решение 1:
Отправить POST без каких-либо аргументов /A/123/B
и вернуть B
. Это означает, что контроллер A ответственен за создание B. Чувствует себя странно.
Решение 2:
Отправить POST с идентификатором 123, /B
. Это означает, что я должен проверить контроллер для B, если существует A с идентификатором 123. Чувствует себя также странно.
Каковы преимущества и недостатки обоих решений? Я задумываюсь над дизайном API?
Спасибо за ваше ясное и совершенно очевидное объяснение! – zersaegen