SYSTEM ATLASЗагрузка материала

Согласование представления

Content Negotiation

Согласование представления выбирает подходящий формат ответа по возможностям и предпочтениям клиента.

Простыми словами

Один ресурс может быть доступен как HTML, JSON или на разных языках. Сервер выбирает вариант, не создавая отдельный смысловой ресурс для каждого формата.

Пример от @Vibeclakr

Пример при разработке

Документация отдаёт HTML браузеру и JSON автоматическому клиенту по Accept, сохраняя один URL ресурса.

Это редакционный пример применения, а не часть определения или доказательство концепции.

Формальное определение

Согласование представления выбирает подходящий формат ответа по возможностям и предпочтениям клиента.

Механизм действия

Клиент отправляет Accept-поля, сервер выбирает representation и сообщает различия через Content-Type и Vary.

Пример в работе

Нерабочий подход

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

Системный подход

Применять «Согласование представления» только для заявленной цели, проверять поведение на реальном контуре и сохранять наблюдаемый критерий результата.

Ограничения

Слишком сложные правила ухудшают кэширование и предсказуемость API.

Источник

IETF, “HTTP Semantics”, 2022.

Первоисточник