Введение JWT (JSON Web Token) — стандартный формат токенов для аутентификации в современных REST API: клиент получает токен после логина и передаёт его в каждом последующем запросе, обычно…
Введение Основной цикл статей про сеть строился вокруг JSON как формата обмена данными — гибкого, человекочитаемого, но не дающего никаких гарантий на уровне компилятора о структуре передаваемых данных:…
Введение С настроенным процессом сборки (статья 322) разберём более подробно сам синтаксис .proto-файлов — доступные типы данных, вложенные структуры, перечисления, и опциональные/повторяющиеся поля, что необходимо для проектирования реалистичного,…
Введение С готовым .proto-контрактом (статья 323) и настроенной сборкой (статья 322) переходим к реализации самого простого вида RPC-вызова — unary (один запрос, один ответ), концептуально аналогичного обычному HTTP-запросу…
Введение Unary RPC из предыдущей статьи подходит для разовых запросов, но для непрерывного потока обновлений (новые показания датчика, поступающие в реальном времени) более естественно подходит server streaming —…
Введение Помимо потока от сервера к клиенту (статья 325), gRPC поддерживает обратный случай — client streaming (клиент отправляет серверу множество сообщений, получая один финальный ответ) и bidirectional streaming…
Введение Во всех предыдущих статьях цикла gRPC-вызовы выполнялись синхронно, что многократно отмечалось как проблема для приложения с пользовательским интерфейсом. В статье разберём правильную интеграцию — выполнение gRPC-вызовов без…
Введение В предыдущих статьях ошибки gRPC обрабатывались минимально — простой проверкой status.ok(). В статье разберём более полную картину обработки ошибок: коды статуса gRPC, метаданные запросов/ответов, и deadline —…
Введение Все предыдущие примеры цикла использовали InsecureChannelCredentials()/InsecureServerCredentials() — полностью незащищённое соединение, явно отмеченное как неприемлемое для реального использования. В статье разберём настройку TLS-шифрования транспорта и аутентификации через токены,…
Введение Сервис, развивающийся во времени, неизбежно требует изменения контракта — добавление новых полей, методов, иногда удаление устаревших. В статье разберём правила, позволяющие изменять .proto-файлы без нарушения совместимости со…
Нравится qthelper.ru? 💚
Сайт живёт без пейволов и обязательной подписки. Если статьи помогают вам в работе — поддержите проект.