Вопрос в основном заключается в , являются ли определенные параметры частью идентификатора ресурса (URI) или нет. , если это так, то вы бы использовали параметры запроса, в противном случае пользовательские заголовки HTTP. Например, передача идентификатора album
в музыкальной галерее должна быть частью URI.
Помните, например, /employee/id/45
(или /employee?id=45
, REST не имеет предвзятого отношения к параметрам строки запроса или для URI, разделенных чистой косой чертой), идентифицирует один ресурс. Теперь вы можете использовать согласование содержимого, отправив заголовок запроса content-type: text/plain
или content-type: image/jpg
, чтобы получить информацию или изображение. В этом отношении ресурс считается одинаковым, а заголовок используется только для определения формата ресурса.
Как правило, я не большой поклонник пользовательских заголовков HTTP. Это обычно предполагает, что клиент уже имеет предварительные знания о реализации сервера (не обнаруживаемые с помощью естественных средств HTTP, т.е. гипермедиа), которые всегда считаются анти-шаблоном REST
Заголовки HTTP обычно определяют аспекты HTTP , ортогональные к тому, что должно быть достигнуто в процессе запроса / ответа. Заголовок Authorization
(на самом деле неправильный, должно быть, это была аутентификация) - классический пример.