TGViewer
BA & SA | 10000 Interview questions BA & SA | 10000 Interview questions @systemanalystinterview · 10.3K subscribers
Post #12205 477
☀Объяснение:

При эволюции API часто приходится менять названия полей, типы или удалять устаревшие атрибуты. Прямое изменение сломает всех существующих клиентов. Необходимо поддерживать несколько версий одновременно, позволяя клиенту выбирать версию.

Способы версионирования:
Через URL (
/v1/customers, /v2/customers) – самый простой и наглядный. Минус: меняется endpoint, клиентам нужно обновлять код вызовов.
Через параметр запроса (
?version=2) – менее явно, может кэшироваться некорректно.
Через заголовок Accept – стандартный способ для REST, основанный на медиатипах. Клиент указывает желаемую версию в заголовке, например: 
Accept: application/vnd.myapi.v2+json. Сервер, прочитав заголовок, сериализует ответ в соответствующем формате.

Почему B – правильный ответ:
Использование 
Accept соответствует принципам REST (content negotiation).
Не засоряет URL, сохраняет единый endpoint.
Позволяет гибко комбинировать версию и формат (JSON, XML).

Сравнение с другими вариантами:
A (параметр 
?version) – тоже возможен, но менее чистый с точки зрения REST.
C (разные URL) – классический подход, но вопрос явно описывает заголовок как способ указать версию.
D (тело запроса) – нестандартно, требует разбора тела до того, как будет понята версия (курица-яйцо).

Реальный пример:
GitHub API версионирует через заголовок 
Accept: application/vnd.github.v3+json. Это позволяет им добавлять новые поля, не ломая старых клиентов.

Что должен зафиксировать аналитик:
В требованиях указать, что API поддерживает версионирование через заголовок 
Accept.
Документировать возможные значения (v1, v2, latest).
Определить политику депрекации старых версий.

Вывод: Версионирование через заголовок 
Accept – гибкий и REST-совместимый способ, особенно когда URL должен оставаться стабильным.
More from @systemanalystinterview
  1. Sep 3, 2026А ИИ действительно экономит время? На деле ИИ может взять на себя рутину: анализировать да…
  2. Aug 26, 2026До 1 сентября остаётся меньше недели, и мы с вами официально вступаем в самую активную пор…
  3. Aug 21, 2026Если вы работаете в сфере IT, развиваетесь в технологиях или просто хотите быть в курсе са…
  4. Aug 20, 2026🔈 Как найти работу в 2026 году Вы все слышали о том, что происходит с рынком труда (если…
  5. Aug 20, 2026Post #12336
  6. Aug 20, 2026№4931 категория вопросов: #REQUIREMENTS
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →