Краткий ответ: для большинства случаев использования, аналогичных описанным вами, 404.
Если говорить более подробно: понятие «подресурс» на самом деле не существует в HTTP.
Да, URIиметь стандартную иерархию сегментов, и вы можете использовать относительное разрешение сегментов точек для вычисления одного URI из другого.Эта семантика не переводится в иерархию ресурсов.
/projects/1234/documents
- это не описание обхода пути, это ключ к словарю.
Что касается HTTP, то прекрасно, что /projects/1234/documents
существует, хотя /projects
и /projects/1234
не существует.
Положите немного по-другому метаданные в вашем ответе,который включает код состояния, применяется к ресурсу /projects/1234/documents
, и ни к чему другому .
Обратите внимание, что это идет в обоих направлениях: не только /projects/1234/documents
не подразумевает ничего о /projects/1234
, но это также тот случай, когда это ничего не значит о /projects/1234/documents/5678
.
Лучшим указанием для того, чтобы разобраться в этом, по-прежнему будет тезис Филдинга .Также может помочь обзор RFC 7234