Я нахожусь в процессе разработки пользовательского медиа-типа для RESTful API и исследовал типы и семантическое значение некоторых «стандартных» отношений ссылок, чтобы придать моему дизайну некоторую управляемость.
Чтобы продемонстрировать проблему, допустим, что у меня есть ресурс, на котором я могу выполнять стандартные методы чтения, изменения, удаления и что для реализации этих методов я использую HTTP-идиомы GET, PUT и DELETE соответственно.
Я мог бы разумно (повторно) использовать отношение ссылки "edit" (из реестра ссылок IANA ), как определено в RFC5023 , в котором говорится:
"... Значение" edit "указывает, что значение атрибута href
является IRI редактируемой записи участника. При появлении в
atom: entry, href IRI может использоваться для извлечения, обновления и удаления
Ресурс, представленный этой записью .... "
Таким образом, пользовательский агент может понять, что ссылка с отношением «редактировать» позволит ресурсам быть GET, PUT и DELETEd.
Однако в этом и заключается проблема: если состояние ресурса редактируется так, что ресурс теперь поддерживает только операции GET и DELETE, отношение «редактировать» больше не является точным.
Чтобы сохранить точность, мне нужно либо i) ВАРИАНТ A: указать другое (составное) отношение ссылок, поддерживающее только GET & DELETE, либо ii) OPTION B: указать отдельные ссылки для каждой возможной передачи состояния и использовать соответствующие те, чтобы указать разрешенные государственные переводы. Последний подход предлагает точность, но кажется слишком многословным.
В качестве альтернативы (ОПЦИЯ C) я мог бы оставить отношение «редактировать» на месте и принять отсутствие точности, то есть ссылка передавала бы семантику GET, PUT, DELETE, но пользовательский агент, пытающийся PUT, встретился бы с Ошибка HTTP «405 - метод не разрешен». Тем не менее, я не доволен этим подходом, так как он подразумевает для клиента переход состояния, который не поддерживается.
Таким образом, вопрос в том, что является наиболее разумным способом сбалансировать общность и точность отношения ссылок