Сравнение REST, RPC, GraphQL и SOAP. Что лучше для интеграции?

Поделиться
HTML-код
  • Опубликовано: 19 июн 2024
  • Запишись на курс "Python - программист
    с нуля" 👉 wiki.merionet.ru/merion-acade...
    Подпишись на канал Merion Academy 👉 @merionacademy ( / @merionacademy )
    00:00 Тема статьи, источник
    00:45 Интересные курсы по IT
    01:46 О чём пойдёт речь, и зачем нужна интеграция
    03:16 Что такое RPC
    04:10 Как работает RPC
    04:36 Преимущества RPC
    05:32 Недостатки RPC
    06:44 Когда используется RPC
    08:46 Что такое SOAP
    09:14 Как работает SOAP
    10:20 Преимущества SOAP
    11:13 Недостатки SOAP
    11:57 Когда используется SOAP
    12:33 Что такое REST
    13:12 Принципы RESTful
    14:14 HATEOAS
    14:46 Модель зрелости API
    15:37 Разница между REST и RPC
    16:26 Преимущества REST
    17:55 Недостатки REST
    18:50 Когда используется REST
    19:37 Что такое GraphQL
    20:27 Как работает GraphQL
    21:26 Преимущества GraphQL
    22:43 Недостатки GraphQL
    23:22 Когда используется GraphQL
    24:01 Что лучше выбрать для интеграции
    Поддержать канал разово - yoomoney.ru/to/410012243709514
    Поддержать канал подпиской - boosty.to/listenit
    Телеграм-канал - t.me/listenit_channel
    Я.Дзен - zen.yandex.ru/listenit
    По вопросам сотрудничества - t.me/ed_akimov
    Спецификация JSON-RPC - www.jsonrpc.org/
    Фреймворк gRPC - grpc.io/
    Apache Thrift - thrift.apache.org/
    Twirp (от Twitch) - twitchtv.github.io/twirp/docs...
    Докторская диссертация Роя Филдинга, где он придумал REST - ics.uci.edu/~fielding/pubs/di...
    Ссылка на статью (RU) - / %d1%81%d1%80%d0%b0%d0%...
    Ссылка на статью (EN) - levelup.gitconnected.com/comp...
    Что такое RPC и gRPC за 10 минут - • Что такое RPC и gRPC з...
    Различия REST и SOAP за 4 минуты - • Различия REST и SOAP з...
    Введение в REST API за 7 минут - • Введение в REST API за...
    Что такое GraphQL за 15 минут с примерами - • Что такое GraphQL за 1...
    Разница STATEFUL и STATELESS за 14 минут - • Разница STATEFUL и STA...
    Что такое HATEOAS за 4 минуты - • Что такое HATEOAS за 4...
    Что такое HTTP и HTTPS за 9 минут - • Что такое HTTP и HTTPS...
    Что такое JWT и как его создать - • Что такое JWT и как ег...
    Что такое CRUD за 6 минут - • Что такое CRUD за 6 минут
    Что такое middleware за 7 минут - • Что такое middleware з...
    Что такое UML за 7 минут - • Что такое UML за 7 мин...
    Что такое SQL и реляционные базы данных - • Что такое SQL и реляци...
    Что такое SQL ИНДЕКСЫ за 10 минут - • Что такое SQL ИНДЕКСЫ ...
    Что такое NoSQL за 6 минут - • Что такое NoSQL за 6 м...
    Что такое ACID за 9 минут - • Что такое ACID за 9 минут
    Компиляция и интерпретация за 10 минут - • Компиляция и интерпрет...
    Что такое TypeScript за 9 минут - • Что такое TypeScript з...
    Что такое UML за 7 минут - • Что такое UML за 7 мин...
    Что такое Scrum за 8 минут - • Что такое Scrum за 8 м...
    Обзор Agile - • Обзор Agile. Это метод...
    Приоритизация бэклога за 4 минуты - • Приоритизация бэклога ...
    Что такое Kanban - • Что такое Канбан-метод...
    Что такое Канбан-доска - • Канбан-доска - это не ...
    Машинное обучение для чайников - • Машинное обучение для ...
    Что такое Big Data за 6 минут - • Что такое Big Data за ...
    *Компания Meta Platforms Inc. признана в России экстремистской организацией и запрещена.
    **Принадлежащие ей соцсети Фейсбук и Инстаграм в России запрещены.

Комментарии • 20

  • @whiterabbit5820
    @whiterabbit5820 27 дней назад +6

    Спасибо за видео! На новом проекте как раз придется поработать с RPC, ранее имел дело только с REST и SOAP. Появилось представление о том, с чем придется иметь дело)

    • @ListenIT_channel
      @ListenIT_channel  27 дней назад +1

      Круто, удачи! Потом напиши, как тебе RPC, зашло или нет)

  • @it-kachalka
    @it-kachalka 20 дней назад +2

    Прекрасное видео, спасибо)
    В дополнение к статей про GraphQL:
    - Еще один огромный неназванный плюс GraphQL это то, что в спецификации есть формат real-time коммуникации (subscriptions), такое еще есть у RPC через streaming, но в GQL реализовано намного удобнее
    - Также GQL объединяет под собой RPC (mutaions) и запросы по структуре (type), что позволяет в случае чего переключаться между "существительным" и "глаголом"
    - И пункт "Проблемы производительности" не учитывает, что это очень легко исправить просто создав Query, которая будет в себе содержать специфический нужный ответ, что пришлось бы так и так делать в других видах API
    А вот из реальных минусов, это то, что до сих пор инструментарий и библиотеки для backend сделаны очень плохо и вне Node.js приходится сталкиваться с трудностями.

    • @ListenIT_channel
      @ListenIT_channel  19 дней назад +1

      Спасибо за фидбэк! Подробно про это говорили, кстати, в отдельной статье про GraphQL - ruclips.net/video/Xkx5wroOt7o/видео.html

  • @stas7che
    @stas7che 15 дней назад

    А websocket это из другой оперы?

  • @TheGeletka
    @TheGeletka 27 дней назад +1

    Про RPC неверно все-таки, почитайте например RFC-1831, или более ранние. Ни HTTP, ни POST, ни GET там не при чем. Вы рассказываете про модифицированную версию (каких очень много). RPC чаще всего работает на голом UDP, TCP.

    • @ListenIT_channel
      @ListenIT_channel  26 дней назад +1

      Согласен, что было бы лучше проговорить в статье ещё про работу на голом TCP и UDP, но не соглашусь, что "чаще всего". Сейчас довольно часто используется работа и через HTTP, и через HTTP/2.

    • @llRub3Nll
      @llRub3Nll 24 дня назад

      Ну насколько я видел сейчас старый RPC никто не интегрирует, сейчас все работают с gRPC которая модификация на базе HTTP 2.0 так что полностью согласен с автором видео

    • @TheGeletka
      @TheGeletka 24 дня назад +1

      @@llRub3Nll в Web не интегрируют, но там, где задействована аппаратура сетевая, почти все на RPC и надстройки над ним, так как там контроллеры. Я к тому, что назвать это стоило по другому в видео - "Семейство протоколов RPC" или как-то еще получше

  • @vadimp4012
    @vadimp4012 24 дня назад +3

    Не уверен, что CORBA - это API. Скорее, архитектура межсистемного объектного взаимодействия. Также не очень ясно про REST. Насколько знаю, он оперирует только абстрактными понятиями CRUD (Create, Read, Update, Delete) и совершенно ничего не знает о транспорте - он может быть каким угодно. REST не обязан подчиняться HTTP-методам (вроде GET/POST и т.д.), более того абстрактную операцию REST Delete можно выполнить с помощью HTTP GET и при этом сервис всё равно может быть RESTful. Мне всегда казалось, что именно на этом и основан REST. А так - да, о нём много разговоров и заблуждений.

    • @erlanibraev
      @erlanibraev 22 дня назад

      Прошу прощения. Вы путаете rest и soap. Основа rest, в том что для каждой сущности есть уникальный url. Так что rest имеет смысл только в рамках http-протокола. 😂

    • @vadimp4012
      @vadimp4012 22 дня назад

      @@erlanibraev я не знаю, в рамках чего он имеет смысл. Я говорил о его верхнеуровневых принципах, а не HTTP-протоколе. URL может существовать и в рамках FTP и чего угодно. HTTP - это уже существуюшая реализация транспорта для REST. Где вы здесь SOAP увидели, неясно.

    • @ListenIT_channel
      @ListenIT_channel  19 дней назад

      Да, так и есть, REST действительно не привязан обязательно к HTTP, но ещё не встречал его в другой реализации, и всё-таки когда говорят на работе и спрашивают на собеседования про REST, то имеют в виду именно реализацию через HTTP. Не очень понимаю, как удаление ресурса через GET сопоставляется с RESTful. То что это можно сделать технически, не означает, что это будет RESTful.
      Согласен, что важно знать, что не обязательно привязываться к HTTP в REST, но всё же в таком сжатом видео в сравнениями не вижу большого смысла рассматривать такие "вакуумные" теоритические варианты использования.

    • @erlanibraev
      @erlanibraev 18 дней назад

      @vadimp4012 У ftp нет глаголов get, post, put, putch. Которые являются неотъемлемой частью rest протокола для манипулирования сущностями. 😏

    • @vadimp4012
      @vadimp4012 17 дней назад

      @@ListenIT_channel потому что ни одна из операций CRUD никак не сопоставляется с методами HTTP - т.е. реализовывать CRUD можно с помощью каких угодно методов. Поэтому я упомянул в качестве примера Delete с помощью GET. Но это в моём понимании.