Сравнение 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. признана в России экстремистской организацией и запрещена.
**Принадлежащие ей соцсети Фейсбук и Инстаграм в России запрещены.
Спасибо за видео! На новом проекте как раз придется поработать с RPC, ранее имел дело только с REST и SOAP. Появилось представление о том, с чем придется иметь дело)
Круто, удачи! Потом напиши, как тебе RPC, зашло или нет)
Прекрасное видео, спасибо)
В дополнение к статей про GraphQL:
- Еще один огромный неназванный плюс GraphQL это то, что в спецификации есть формат real-time коммуникации (subscriptions), такое еще есть у RPC через streaming, но в GQL реализовано намного удобнее
- Также GQL объединяет под собой RPC (mutaions) и запросы по структуре (type), что позволяет в случае чего переключаться между "существительным" и "глаголом"
- И пункт "Проблемы производительности" не учитывает, что это очень легко исправить просто создав Query, которая будет в себе содержать специфический нужный ответ, что пришлось бы так и так делать в других видах API
А вот из реальных минусов, это то, что до сих пор инструментарий и библиотеки для backend сделаны очень плохо и вне Node.js приходится сталкиваться с трудностями.
Спасибо за фидбэк! Подробно про это говорили, кстати, в отдельной статье про GraphQL - ruclips.net/video/Xkx5wroOt7o/видео.html
А websocket это из другой оперы?
Про RPC неверно все-таки, почитайте например RFC-1831, или более ранние. Ни HTTP, ни POST, ни GET там не при чем. Вы рассказываете про модифицированную версию (каких очень много). RPC чаще всего работает на голом UDP, TCP.
Согласен, что было бы лучше проговорить в статье ещё про работу на голом TCP и UDP, но не соглашусь, что "чаще всего". Сейчас довольно часто используется работа и через HTTP, и через HTTP/2.
Ну насколько я видел сейчас старый RPC никто не интегрирует, сейчас все работают с gRPC которая модификация на базе HTTP 2.0 так что полностью согласен с автором видео
@@llRub3Nll в Web не интегрируют, но там, где задействована аппаратура сетевая, почти все на RPC и надстройки над ним, так как там контроллеры. Я к тому, что назвать это стоило по другому в видео - "Семейство протоколов RPC" или как-то еще получше
Не уверен, что CORBA - это API. Скорее, архитектура межсистемного объектного взаимодействия. Также не очень ясно про REST. Насколько знаю, он оперирует только абстрактными понятиями CRUD (Create, Read, Update, Delete) и совершенно ничего не знает о транспорте - он может быть каким угодно. REST не обязан подчиняться HTTP-методам (вроде GET/POST и т.д.), более того абстрактную операцию REST Delete можно выполнить с помощью HTTP GET и при этом сервис всё равно может быть RESTful. Мне всегда казалось, что именно на этом и основан REST. А так - да, о нём много разговоров и заблуждений.
Прошу прощения. Вы путаете rest и soap. Основа rest, в том что для каждой сущности есть уникальный url. Так что rest имеет смысл только в рамках http-протокола. 😂
@@erlanibraev я не знаю, в рамках чего он имеет смысл. Я говорил о его верхнеуровневых принципах, а не HTTP-протоколе. URL может существовать и в рамках FTP и чего угодно. HTTP - это уже существуюшая реализация транспорта для REST. Где вы здесь SOAP увидели, неясно.
Да, так и есть, REST действительно не привязан обязательно к HTTP, но ещё не встречал его в другой реализации, и всё-таки когда говорят на работе и спрашивают на собеседования про REST, то имеют в виду именно реализацию через HTTP. Не очень понимаю, как удаление ресурса через GET сопоставляется с RESTful. То что это можно сделать технически, не означает, что это будет RESTful.
Согласен, что важно знать, что не обязательно привязываться к HTTP в REST, но всё же в таком сжатом видео в сравнениями не вижу большого смысла рассматривать такие "вакуумные" теоритические варианты использования.
@vadimp4012 У ftp нет глаголов get, post, put, putch. Которые являются неотъемлемой частью rest протокола для манипулирования сущностями. 😏
@@ListenIT_channel потому что ни одна из операций CRUD никак не сопоставляется с методами HTTP - т.е. реализовывать CRUD можно с помощью каких угодно методов. Поэтому я упомянул в качестве примера Delete с помощью GET. Но это в моём понимании.