Степень детализации отношения ссылок и точность в пользовательском Тип мультимедиа?

Я нахожусь в процессе разработки настраиваемого типа мультимедиа для RESTful API и исследовал типы и семантическое значение некоторых «стандартных» отношений ссылок, чтобы дать моему дизайну некоторую поддержку.

Чтобы продемонстрировать проблему, скажем, что у меня есть ресурс, на котором я могу выполнять стандартные методы чтения, изменения и удаления, и что я использую HTTP-идиомы GET, PUT и DELETE соответственно для реализации этих методов.

Я мог бы разумно (повторно) использовать отношение ссылки «редактировать» (из реестра ссылок IANA ), как определено в RFC5023 , в котором говорится:

«... значение "edit" указывает, что значение атрибута href - это IRI редактируемой записи о члене. При появлении в atom: entry, IRI href можно использовать для получения, обновления и удаления ресурс, представленный этой записью .... »

Таким образом, пользовательский агент может понять, что ссылка с отношением« редактировать »позволит ресурсу быть GET, PUT и DELETEd.

Однако и в этом заключается проблема, если состояние ресурса редактируется так, что ресурс теперь поддерживает только операции GET и DELETE, отношение «редактировать» больше не является точным.

Чтобы сохранить точность, мне нужно либо i) ВАРИАНТ A: указать другое (составное) отношение ссылки, которое поддерживает только GET & DELETE, или ii) ВАРИАНТ B: указать отдельные ссылки для каждой возможной передачи состояния и использовать соответствующие единицы для обозначения разрешенных государственных переводов. Последний подход обеспечивает точность, но кажется излишне многословным.

В качестве альтернативы (ВАРИАНТ C) я мог бы оставить связь «редактировать» на месте и принять отсутствие точности, т.е. ссылка будет передавать семантику GET, PUT, DELETE, но пользовательский агент, пытающийся выполнить PUT, будет встречен с Ошибка HTTP «405 - метод запрещен». Однако меня тоже не устраивает такой подход, поскольку он подразумевает для клиента переход состояния, который не поддерживается.

Итак, вопрос в том, каков наиболее разумный способ сбалансировать универсальность и точность отношений ссылок?

5
задан paulkmoore 27 February 2012 в 14:21
поделиться