КАК СПРОЕКТИРОВАТЬ ХОРОШИЙ API: 20 ЛУЧШИХ ПРАКТИК

แชร์
ฝัง
  • เผยแพร่เมื่อ 21 พ.ย. 2024

ความคิดเห็น • 42

  • @eldar_kodzaev
    @eldar_kodzaev ชั่วโมงที่ผ่านมา

    Одно из тех немногих видео, которое я досмотрел до конца. Спасибо!

  • @Milording
    @Milording 3 วันที่ผ่านมา +9

    Очень хорошее видео. Без воды и с приятным визуалом ❤

  • @vanynysha
    @vanynysha วันที่ผ่านมา +2

    Очень круто, молодец. Спасибо большое
    Если добавить таймкоды, чтобы можно было возвращаться к видео время от времени, то вообще огонь будет

  • @nardo988
    @nardo988 3 ชั่วโมงที่ผ่านมา

    Ждем видос про виды кеширования и подходы!!!

  • @only_important
    @only_important 17 ชั่วโมงที่ผ่านมา

    Видео огонь! Грамотная подача, четкий визуал, все по сущетсву, спасибо!

  • @dmitriysobolle
    @dmitriysobolle 13 ชั่วโมงที่ผ่านมา +3

    Спасибо. Добавьте пункт об описании интерфейса API. По запросу, например get=options пользователь должен получить инструкции (help) о ключах и методах.

  • @r.prybluda
    @r.prybluda 2 วันที่ผ่านมา

    Очень полезное видео для меня. Слайды супер. Спасибо! 👍👍👍
    Жду с нетерпением новых видео.

  • @kusam7384
    @kusam7384 2 วันที่ผ่านมา

    Очень классный визуал. Не планировал просвещаться в этой теме, но визуал так зацепил, что не могу оторваться )

    • @maslennikovvaleriy
      @maslennikovvaleriy  2 วันที่ผ่านมา

      Спасибо! Как раз тестировал формат, рад фидбеку 🙂

  • @Борьбазадепозит
    @Борьбазадепозит วันที่ผ่านมา

    Ппц, чуть не начал писать а тут такое... "дизайн апи" , прям оч вовремя, спс огромное.

  • @dolzhansky8393
    @dolzhansky8393 วันที่ผ่านมา

    Очень приятно было-бы видеть тайм-коды, на тайм лайне))

  • @dosmds
    @dosmds 3 วันที่ผ่านมา

    Видео понравилось, подача отличная, спасибо за Ваш труд. Считаю бы лучше если помимо самих советов указывать еще и статьи/литературу на чем они основываются. Так помимо информации даваемой Вами можно будет еще и получить углубленное понимание 😀

  • @einz7293
    @einz7293 2 วันที่ผ่านมา

    То самое видео, которое досмотрел до конца. Хорошо

  • @Сергей-ф2ъ7я
    @Сергей-ф2ъ7я 3 วันที่ผ่านมา

    Всё вроде очевидно, но приятно еще раз послушать

  • @itirush2701
    @itirush2701 20 ชั่วโมงที่ผ่านมา

    Отличный видос!

  • @aceracer5556
    @aceracer5556 2 วันที่ผ่านมา

    Отличное видео! Поддерживаю!

  • @everyx-ff3yd
    @everyx-ff3yd 3 วันที่ผ่านมา +4

    на 1:10 приведена некорректная таблица. Единственное что в ней является архитектурным стилем - это REST. В целом, если эта информация от начинающего разработчика без какого либо бэкграунда - то в целом, ок. Но надо иметь в виду что приведет людей к заблуждению в терминологии, как минимум.

  • @itirush2701
    @itirush2701 20 ชั่วโมงที่ผ่านมา

    Пожалуйста сделай видео про OAuth 2.0

  • @UserSo4reUsu75ry
    @UserSo4reUsu75ry 2 วันที่ผ่านมา

    4:25
    Почему нельзя конкретно назвать какой код должен вернутся для методов get, put, post, delete ? 201 код должен вернуть put или post ? Не сказано

  • @vladdestro2348
    @vladdestro2348 วันที่ผ่านมา +2

    Дизайн api совет 4. Ремарка, понятное описание должно быть на всем кроме авторизации. Не нужно говорить пользователю что он ввел пароль не верно. Лучше писать, что логин или пароль были введены неправильно, так вы повысите безопасность системы

  • @dmitrychurkin4077
    @dmitrychurkin4077 วันที่ผ่านมา

    Валерчик вставь таймкоды пожалуйста

  • @Nixguy
    @Nixguy วันที่ผ่านมา

    Посмотрел 1-ю минуту видео и уже там введение людей в заблуждение: REST - это не только HTTP и даже не обязательно HTTP. Транспортом может быть что угодно.
    Если уж с первоисточниками не сложилось, то хотя бы 1-й абзац русской википедии стоило прочитать.

  • @Сергей-ф2ъ7я
    @Сергей-ф2ъ7я 3 วันที่ผ่านมา

    Мне кажется, лучше версионировать апи целиком

  • @alex_everget
    @alex_everget 2 ชั่วโมงที่ผ่านมา

    13:45 Офсет-пагинация не улучшает производительность

  • @fluffyliberta
    @fluffyliberta 3 วันที่ผ่านมา

    Хорошее видео, но пример с идемпотентностью неправильный. DELETE должен возвращать одинаковый РЕЗУЛЬТАТ, а не изменять состояние системы. По REST у системы вообще не должно быть состояний. 6:24 как раз ошибочно будет вернуть 404 Not Found, если первый раз вернули 200/204.

    • @maslennikovvaleriy
      @maslennikovvaleriy  3 วันที่ผ่านมา

      Спасибо за комментарий, я рад, что видео понравилось :)
      Не совсем согласен с вами, хотя возможно мне нужно было явно проговорить, что говоря об идемпотентности, я подразумеваю изменение состояния ресурсов. Тут важно различать термин "состояние" в разных контекстах:
      1. В REST "stateless" отсылает к тому, что ответственность за хранение информации о текущей сессии и её состоянии между запросами несет не сервер, а клиент. Другими словами, 'отсутствие состояния' в контексте REST означает, что каждый запрос должен быть самодостаточным и не зависеть от предыдущих запросов. Но это не значит, что ресурсы REST API не могут иметь различных состояний: пользователь удалён, в бане, создан и т.п. Отсюда и следует возможность получать различные ответы в зависимости от различных состояний ресурсов API. Юзера удалили - теперь получили 404, так как состояние ресурса поменялось. Сервер при этом всё ещё не хранит никакого состояния между запросами, он всё ещё оперирует только ресурсами и ничего не знает о предыдущих запросах. Это и есть stateless из REST.
      2. В контексте идемпотентности я как раз говорю о состоянии ресурсов, повторный запрос не должен их изменять. При этом свойство идемпотентности никак не регламентирует поведение сервера. То есть идемпотентное удаление может быть реализовано как с вариантом кода 200 в смысле "ресурс уже удалён", так и 404, т.к. ресурс уже удалён (к тому же, 200 не всегда возможен, ведь не всегда используется мягкое удаление).

  • @oWeRQ666
    @oWeRQ666 3 ชั่วโมงที่ผ่านมา

    Ни про http методы, ни про связи ничего не сказано, т.е. для сферического апи в вакууме.

  • @Сергей-ф2ъ7я
    @Сергей-ф2ъ7я 3 วันที่ผ่านมา

    Ну рт хорошей ддос-атаки тротлинг не поможет😅

  • @Alex89muller
    @Alex89muller วันที่ผ่านมา

    А когда мне нужно получить ресурс через POST а не через GET то как назвать без глагола что это get))

    • @xdFOrfq8VVH6j5kXAh
      @xdFOrfq8VVH6j5kXAh วันที่ผ่านมา

      А какие причины для получения ресурса через POST? Случайно, не передача параметров в body вместо query string?

    • @Alex89muller
      @Alex89muller วันที่ผ่านมา

      @xdFOrfq8VVH6j5kXAh использование json схемы, запросы не являются идемподентными. Естественно передача параметров в body так длинна через get не позволяет.

    • @Alex89muller
      @Alex89muller วันที่ผ่านมา

      @xdFOrfq8VVH6j5kXAh Мне вообще get не получается применять, в редких простых случаях. И то забиваешь на них и тоже через post делаешь. Но за видео спасибо, вроде толково рассказал. Но вот как проблему с post решить пока не понял.

  • @YuriZak
    @YuriZak 8 ชั่วโมงที่ผ่านมา

    Кликбейт…
    В названии должно быть webApi а не api

  • @imNauryzbay
    @imNauryzbay 2 วันที่ผ่านมา

    Комментарий, видео кншн прям очень банальное, напихал те самые практики с водой, так еще и в рамках http, ну ладно, целевая аудитория вроде в восторге.

  • @mistersun4218
    @mistersun4218 3 วันที่ผ่านมา +3

    Гифка "Да что ты черт побери такое несешь?" на первом же совету по неймингу

    • @maslennikovvaleriy
      @maslennikovvaleriy  3 วันที่ผ่านมา

      Поделитесь, что вас так возмутило?)

    • @Сергей-ф2ъ7я
      @Сергей-ф2ъ7я 3 วันที่ผ่านมา

      Вот я тоже не понял

    • @mistersun4218
      @mistersun4218 2 วันที่ผ่านมา

      @@maslennikovvaleriy Когда ты получаешь одну сущность по ID, то это плохая идея делать путь во множественном числе, а у тебя наоборот. Да, для API это не критично на самом деле, потому как пользователи не видят URL, но для остального стоит всё же логичные URL.

    • @rodionmatvieiev4990
      @rodionmatvieiev4990 วันที่ผ่านมา

      @@maslennikovvaleriyне обращай внимания, все правильно.

    • @gauyful
      @gauyful วันที่ผ่านมา

      А вы, наверно, в синем/красном банке работаете, да?