TGStat
TGStat
Qidiruv uchun matnni kiriting
Ilg‘or kanal qidiruvi
  • flag Uzbek
    Sayt tili
    flag Russian flag English flag Uzbek
  • Saytga kirish
  • Katalog
    Kanal va guruhlar katalogi Hududiy to‘plamlar Tematik to‘plamlar Платные каналы Kanallar qidiruvi
    Kanal/guruh qo‘shish
  • Reytinglar
    Kanallar reytingi Guruhlar reytingi Postlar reytingi
    Brendlar va shaxslar reytingi
  • Analitika
  • Postlarda qidiruv
  • Telegram'ni kuzatish
  • Targ‘ibot
    Yandex Business orqali reklama TGStat Agency orqali kanallarda reklama TGStat.ru saytida reklama
Твой кролик писал

19 Aug, 17:42

Telegram'da ochish Ulashish Shikoyat qilish

Путь аналитика dan repost
🤯 POST, PUT или DELETE? - Вот в чем вопрос!

Выбор правильного HTTP-метода для эндпоинта - это вечная холиварная тема. Особенно когда семантика API не маппится напрямую в REST-методы. Например: вроде бы выполняется удаление, но под капотом происходит update или вовсе создание новой записи.

На практике операции редко соответствуют простой схеме «CREATE → POST, UPDATE → PUT, DELETE → DELETE». В реляционных моделях, например, апдейтится сразу много связей.

Не раз на проектах сталкивалась с ситуацией, когда мы с командой буквально застревали в спорах над дизайном API. По бизнес-логике нужно сделать эндпоинты "как бы про удаление" и "как бы про обновление", но по факту операции вызывают комбинацию событий.

Основная сложность таких обсуждений - это найти понятную рамку, на основании чего принимать решение:

🔶 Выбор строго по конвенции REST часто не подходит, так как операция неконвенционная.

🔶 Выбор "по сути" бизнес-операции (например, если удаление, то строго DELETE) ломает REST-конвенцию и упирается в ограничения метода. Может ли DELETE вернуть в response несколько обновлённых сущностей вместо OK/ERROR?

🔶 Выбор в пользу "понятно для клиента" - это размытый критерий. На рынке нет единого стандарта под такие случаи, и «понятность» превращается во вкусовщину.

Как-то обсуждали эту тему с solution architect Володей @vrogach. И его решение мне очень откликнулось.

Зафиксировать внутренний стандарт для конкретного API (Design Guidelines).

Для всех неконвенционных операций команда один раз договаривается и выбирает конкретный метод, который будет использоваться на все подобные случаи, и фиксирует это в спецификации API.

Например: "Для всех эндпоинтов, которые запускают комбинацию событий, используется POST"

Это делает поведение API предсказуемым для клиентов и разрубает узел нестыковок с REST-конвенцией.


Конечно, на практике не всегда удаётся договориться о таком с командой. У меня были случаи тоже, когда для сохранения мира в команде приходилось идти за большинством голосом разработчиков и выбирать среди подходов "по сути бизнес операции" пусть и неконвенционно REST.

И всё же я считаю, что подход Владимира наиболее адекватный, особенно для API, где выше требовавания к детерминированности и прозрачности для клиентов. Он максимально понятный и удобный для дальнейшего развития API - не нужно больше возваращаться к выбору метода для новых операций.

💬 А как у вас в командах решают такие спорные случаи? Удаётся ли договориться о едином стандарте? 👇

7 0 0 2
Katalog
Kanal va guruhlar katalogi Kanallar to‘plamlari Kanallar qidiruvi Kanal/guruh qo‘shish
Reytinglar
Telegram-kanallar reytingi Telegram-guruhlar reytingi Postlar reytingi Brendlar va shaxslar reytingi
API
Statistika API'si Postlar qidiruvi API'si API Callback
Kanallarimiz
@TGStat @TGStat_Chat @telepulse @TGStatAPI
O‘qish
Академия TGStat Telegram tadqiqoti 2019 Telegram tadqiqoti 2021 Telegram tadqiqoti 2023
Kontaktlar
Справочный центр Qo‘llab-quvvatlash Email Vakansiyalar
Har xil narsalar
Foydalanuvchi shartnomasi Maxfiylik siyosati Ommaviy oferta
Botlarimiz
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot