У меня есть структура URI, которая является иерархической для определенного набора данных:
/Blackboard/Requirement/{reqID}/Risk/{riskId}/MitigationPlan/{planId}
Если URL разделен на различные идентификаторы, вы можете получить этот конкретный ресурс, например ::10000
GET: /Blackboard/Requirement/2/Risk/2
Это получает риск № 2, связанный с требованием № 2
Вопрос заключается в следующем: желаемая функция теперь может обновлять (PUT) и удалять (DELETE) набор требований в одном и том же HTTP-запросе. (Весь «набор» требований может быть GET, когда вы запускаете HTTP GET по URL-адресу /Blackboard
- это функциональность по умолчанию, поскольку что-то написано на доске, образно)
Итак, я должен создать новый URL ресурса коллекции, поддерживающий только PUT / DELETE, например:
/Blackboard/Requirements : HTTP PUT/DELETE
(обратите внимание на множественное число)
или фактически сделать существующую структуру URL множественной
/Blackboard/Requirements/{reqID}/Risk/{riskId}/MitigationPlan/{planId}
Последнее, похоже, нарушает семантическое единообразие, поскольку другие элементы в иерархии единичны. Должен ли я сделать их тоже во множественном числе ??
Помогает ли наличие идентификатора элемента устранять неоднозначность (с человеческой точки зрения :), например Blackboard/Requirements/1
, или предпочтительнее предоставлять другой ресурс (т. Е. Коллекцию) исключительно по эксплуатационным причинам (поскольку GET не допускается без идентификатора - независимо от того, единственное или множественное число)?
Просто хотел узнать мнение сообщества о том, какой подход обычно выбирается (или является правильным способом сделать это) для ясности и чистоты дизайна.