Идемпотентность и коммутативность API: что это и как применяют на практике

Поділитися
Вставка
  • Опубліковано 16 лис 2024
  • (Видео с переключением слайдов: • Идемпотентность и комм... + t.me/kateit/46)
    Как повторные запросы API могут привести к сбоям в системе? Почему важно, чтобы результат операций оставался корректным, даже если их порядок выполнения изменится?
    Эти вопросы об идемпотентности и коммутативности актуальны для системных аналитиков, которые работают с системами, в которых есть бронирования, заказы или платежи.
    В подкасте обсудим, как принципы идемпотентности и коммутативности API помогают избежать проблем и обеспечивают корректность работы систем.
    🔗 Презентация к эпизоду: getanalyst.ru/...
    1:25 - Проблемы приложений, которые игнорируют идемпотентность и коммутативность в своих API.
    3:24 - О принципах работы сетей с пакетной передачей данных.
    6:15 - Определение идемпотентности и коммутативности. О проблемах, с которыми столкнулись на проекте из-за несоблюдения этих свойств API. Как защищаться от этих проблем со стороны UI, без изменения API.
    11:40 - Ключ идемпотентности и где его использовать в REST API в headers, query или body JSON. Естественный и суррогатный ключ.
    18:45 - Инварианты в пользовательских сценариях - о проблемах бизнес-логики из-за которой создаются дубликаты данных в системе.
    26:00 - Коммутативность в API.
    30:52 - GET, POST, PUT, PATCH, DELETE и их идемпотентность. Почему метод PATCH не идемпотентный, хотя он похож на идемпотентный. Можно ли не идемпотентные методы делать идемпотентными.
    42:25 - Подведение итогов и рекомендации.
    Ведущая:
    Екатерина Ананьева
    Гости:
    Елизавета Акманова, Старший системный аналитик в компании UseTech

КОМЕНТАРІ • 6

  • @ListenIT_channel
    @ListenIT_channel 2 місяці тому

    Очень хороший выпуск получился, спасибо) Только один момент: концы фраз немного "съедаются", как-будто нейросетке исходник скормили, чтобы убрать паузы - из-за этого немного сумбурно воспринимается иногда. А так супер!

    • @GetAnalyst
      @GetAnalyst  2 місяці тому

      Спасибо за обратную связь! При записи несколько моментов пострадали, будем искать способы чтобы такого не было :)

  • @koboshon
    @koboshon 2 місяці тому +1

    Отличный выпуск, спасибо большое! Хотелось бы порассуждать по поводу метода DELETE. Возможно я не прав, но если посмотреть на метод DELETE с точки зрения ресурса и БД, то станет понятно почему он идемпотентный - каждый последующий вызов метода DELETE не вызовет никаких изменений ресурса и никак не поменяет состояние вашей БД. Первичный вызов метода DELETE удаляет ресурс и у БД появляется некое состояние (минус какой-то объект). При последующих вызовах метода DELETE с этими же параметрами, никаких изменений в БД происходить не будет (состояние БД останется таким же как и после первого вызова). Аналогично и с методом PUT - внеся изменения в ресурс при первом вызове (поменяв состояние БД) каждый последующий вызов никак не поменяет состояние БД. При этом если взять ваш пример с методом PATCH, который допустим уменьшает баланс пользователя на 100 рублей, то каждый вызов метода PATCH (без ключа идемпотентности) будет менять состояние объекта в БД и соответственно самой БД.

    • @GetAnalyst
      @GetAnalyst  Місяць тому

      Добрый день! Да, всё абсолютно так с точки зрения БД, даже добавить нечего 👍

  • @qpqp7492
    @qpqp7492 2 місяці тому +2

    Нет слайдов на видео, по крайней мере первого слайда пока не вижу 😢 на 5 минуте

    • @GetAnalyst
      @GetAnalyst  2 місяці тому

      Загрузили дополнительно видео со слайдами ua-cam.com/video/tmr8K8mBiRM/v-deo.html. Одна из платформ подкастов решила, что она не хочет доставлять видео до UA-cam)