TGViewer
Айтишник обыкновенный 🐰 Айтишник обыкновенный 🐰 @default_itshnik · 1.91K subscribers
Post #363 1.31K
Версионирование API

Наверное, почти все знают и понимают что это такое. А я все равно хочу рассказать подробнее, не зря же я об этом читал в книге Дж. Гивакса «Паттерны проектирования API».

Интересный факт, я заметил, что все используют один и тот же подход версионирования, пихая только его в разные куски, думая, что это и есть разные подходы. А вот и нет, все немного иначе.

Итак, самый известный и почти всеми используемый подход - семантическая строка. Да-да, тот самый паттерн, который включает в себя циферки с точками:
1️⃣.2️⃣.3️⃣

В этой строке обычно три числа:

1️⃣MAJOR –
отвечает за мажорные версии, которые обновляются при накате обратно не совместимых изменений

2️⃣MINOR –
второе число (минорная версия) отвечает за накат новой обратно совместимой функциональности

3️⃣PATCH –
а третье число, которое на самом деле часто не используют - это патчи, то есть обратно совместимые изменения с устранением ошибки или корректировкой поведения работы API.

По сути самое важное при любом обновлении ручки - понять: «А потребители сломаются?». Если ответ на вопрос - «Да», то значит ваше обновление обратно несовместимо и вам нужно поменять мажорную версию. А еще желательно оповестить об этом потребителей, чтобы они своевременно перешли на новую версию и при необходимости старую вывести из эксплуатации.


Как меняются циферки и почему мы разобрались, а теперь давайте перейдем к самому главному и холиварному - куда же нам запихнуть эти цифры?

На самом деле пофиг, я серьезно. Кому-то удобнее в URI прямо в path или в виде параметра, кому-то в Header, а кому-то в отдельное поле Body.

А где вы указываете версию?
❤️ - в строке адреса
🤔 - в заголовке
😱 - в теле

И пишите свои нестандартные варианты, где и как вы использовали семантическую строку. Например, я использую в
🟢🟩🟩🟩🟩🟢, так как это тоже удобно.

#быстростатья
  • ❤ 9
  • 👍 4
  • 😱 3
  • 🤨 3
More from @default_itshnik
  1. Mar 1, 2026Быть старпером не модно, а законно С первым днем весны! С сегодняшнего дня начинает работа…
  2. Feb 27, 2026Меня переиграл и уничтожил ребёнок Началось утро ни разу ни с кофе. И даже ни с чая. Да че…
  3. Feb 22, 2026Отправила нюдсы через пылесос! Хакеры научились следить за россиянами через умные пылесосы…
  4. Feb 19, 2026Соболезную офисным бедолагам! Сегодня на улице происходит кайфец)) Пока шел в поликлинику,…
  5. Feb 15, 2026Посмотрел на голую жопу Тимоти Шаламе (реально) 🫥 Не переживай, спойлеров не будет 😊 Што…
  6. Feb 14, 2026Я люблю тебя! Наверное, все мои коллеги по каналам уже выложили тематические валентинки. А…
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 →