Про API и протоколы
Решил потихоньку для вас искать и готовить материалы для прокачки хардов.
И начнем мы с API и протоколов.
Чем API отличается от протокола?
По назначению они действительно схожи. Но есть разница:
API (Application Programming Interface) относится к тому, как приложения взаимодействуют друг с другом.
А протокол – только к передаче данных.
Поэтому для лучшего понимания их нужно изучать на картинке, которую я следующим постом приложу.
💬 Но сначала - немного определений и смыслов:
➡️ REST (Representational State Transfer). Являясь чемпионом по простоте и повсеместности, REST — это архитектурный стиль, в котором в основном используются методы протокола HTTP. Он позволяет легко взаимодействовать с ресурсами, что делает его идеальным шаблоном для множества приложений и современных API.
➡️ SOAP (Simple Object Access Protocol): протокол SOAP, тяжеловесный соперник на арене API, преуспевает за счет сложности и мощности. Он использует XML для определения структурированной связи. Хотя для этого требуется клиент и stateless сервер, он компенсирует это своей силой и надежностью, подобно хорошо сложенному внедорожнику, преодолевающему пересеченную местность.
➡️ GraphQL: восходящая звезда в мире API, язык запросов GraphQL предлагает гибкость и точность. Это позволяет клиентам запрашивать именно то, что им нужно, уменьшая избыточность и повышая производительность. Думайте о нем как о сборщике вашего заказа в Яндекс.Маркете - вы получаете именно то, что просили из разных магазинов, ни больше, ни меньше.
➡️ gRPC (Google Remote Procedure Call): как вариант архитектуры RPC, gRPC был создан Google для ускорения передачи данных между микросервисами и другими системами, которым необходимо взаимодействовать друг с другом. В отличие от REST и RPC, gRPC преодолевает проблемы, связанные со скоростью и весом, и предлагает большую эффективность при передаче сообщений, используя формат обмена сообщениями Protobuf (буферы протокола). Это как скоростной поезд, обеспечивающий быструю и надежную связь.
➡️ WebSockets: если вам нужна двусторонняя связь в режиме реального времени, хорошим решением будут веб-сокеты. Идеально подходит для чат-приложений, прямых трансляций и обмена данными в реальном времени. Это похоже на открытую телефонную линию между клиентами и серверами.
➡️ Webhooks: вебхуки — главные глашатаи цифрового мира. Они уведомляют клиентов о возникновении определенных событий на стороне сервера, что делает их идеальными для архитектур, управляемых событиями. Представьте их как вашу личную систему оповещения, которая держит вас в курсе того, что важно.
➡️ MQTT (Message Queuing Telemetry Transport): MQTT — протокол, который работает по модели «издатель-подписчик». Был разработан специально для сред с ограниченными ресурсами, низкой пропускной способностью и ненадежными сетями. Представьте себе его как курьера, готового доставить ваш заказ вне зависимости от погодных условий.
➡️ AMQP (Advanced Message Queuing Protocol): надежный и стандартизированный протокол, AMQP превосходно подходит для промежуточного ПО благодаря своим надежным возможностям асинхронного обмена сообщениями. Это похоже на хорошо смазанный движок, эффективно перемещающий сообщения туда, куда нужно.
❓Как считаете, что в этом списке технологий кажется лишним?
@godnolytika
Post #106
4.68K
- 🔥 50
- 👍 21
- ❤ 10