Найти тему
QA Way - QA Automation

Какие бывают API - gRPC, WebSockets

Оглавление

gRPC

Часть аббревиатуры RPC расшифровывается как удаленный вызов процедур. g добавленное в начале означает, что это усовершенствованная версия, разработанная Google в 2015 году.

Пользователь выбирает удаленную процедуру для выполнения, сериализует необходимые параметры и добавляет любую необходимую информацию в сообщение. Затем это сообщение будет отправлено на сервер, который взаимодействует с приложением. Сообщение декодируется и выполняется соответствующая операция. Затем результат выполнения возвращается пользователю.

Плюсы

Это мощная форма API из-за своей простоты. Вы просто, используя GET для получения информации и POST для всего остального. Новые функции легко добавлять. При небольшом размере запросов и ответов вы получаете в целом очень хорошую производительность. Возможность определять любой тип функции делает ее неограниченно настраиваемой.

Типичные варианты использования включают API-интерфейсы, которые отправляют простые запросы в удаленные системы, и API-интерфейсы для конкретных клиентов, которые помогают масштабировать внутренние микросервисы с высокой скоростью.

  • Поддерживается множеством популярных языков программирования, в том числе JavaScript, Java, C#, Kotlin, Python и Go.
  • Открытый исходный код и разработчики могут модифицировать его под свои потребности.
  • Способен балансировать нагрузку.
  • По умолчанию использует HTTP/2, что уменьшает задержку по сравнению с REST API.
  • Сериализует данные в двоичном формате.

Минусы

Недостаток gRPC заключается в том, что он тесно связан с базовой системой, что ограничивает возможность его повторного использования во многих случаях. Кроме того, между API и реальными системными функциями отсутствует уровень абстракции, что может вызывать проблемы с безопасностью.

  • Не имеет поддержки браузера по умолчанию.
  • Менее распространён, чем REST и GraphQL. Сообщество пользователей меньше по размеру.

WebSockets

WebSockets - это протокол связи, который обеспечивает динамическую связь по одному TCP-соединению.

Плюсы

WebSockets действует как тонкий транспортный слой, расположенный поверх вашего технологического стека TCP/IP. С помощью API вы можете отправлять сообщения на сервер и получать ответы, управляемые событиями, без необходимости опрашивать сервер для получения ответа.

  • Поддерживает двусторонний обмен данными: может одновременно получать и передавать информацию.
  • Отправляет данные быстрее, чем HTTP.
  • Кроссплатформенная совместимость.
  • Кратковременное отсутствие связи не прерывает соединение.
  • Протокол позволяет работать в асинхронном режиме вместо привычной схему запросов и ответов.

Минусы

Основное различие между WebSocket API и gRPC API заключается в том, что WebSockets основан на HTTP/1.1, тогда как gRPC был создан с использованием HTTP/2. Это был естественный шаг к развитию технологии, хотя это не значит, что какой-то из них лучше. У обоих вариантов есть свои плюсы и минусы, и ваш конкретный выбор должен соответствовать вашим потребностям.

  • Высокие требования к серверному оборудованию.
  • При отправке пакета в WebSocket вы не сразу узнаете доставлен он или нет.

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

Для принятия решения вам необходимо учитывать несколько вещей:

  • Какой язык программирования вы хотите использовать?
  • В какой среде вы собираетесь разрабатывать?
  • Какова основная функциональность, которая важна для этого API?
  • Какими навыками вы уже владеете или можете приобрести?

Если вы можете ответить на эти вопросы заранее - это поможет выбрать тип API, наиболее подходящий для ваших нужд. Имейте в виду, что вы всегда можете попробовать небольшое подтверждение концепции с одним или двумя типами, чтобы посмотреть, как они будут функционировать.