Dev48
ЯЗЫК
  • О нас
  • Услуги
  • Индустрии
  • Технологии
  • Статьи
  • Контакты
Забронировать звонок
    Главная/Статьи/Planirovanie zaprosov grpc i graphql s pomoschyu postman monitors beta versiya
Dev48
info@dev48.org+375 29 320-40-96WhatsApp@isky_by

© 2026 · Все права защищены.

Планирование запросов gRPC и GraphQL с помощью Postman Monitors (бета-версия)

Фото: terski (Pixabay) — https://pixabay.com/photos/butterfly-common-postman-8449825/

Источник: Postman•25 сентября 2026 г. в 07:03

Планирование запросов gRPC и GraphQL с помощью Postman Monitors (бета-версия)

Postman Monitors теперь поддерживают выполнение запросов gRPC и GraphQL в бета-режиме. Узнайте, как планировать их выполнение, тестировать ответы и отправлять отзывы. Начните мониторинг уже сегодня. Статья «Планирование запросов gRPC и GraphQL с помощью Postman Monitors (бета-версия)» впервые появилась в блоге Postman.

Если вы используете gRPC- или GraphQL-сервисы в продакшене, вы, вероятно, сталкивались с такой проблемой: в вашей коллекции Postman уже настроен запрос с правильной аутентификацией, переменными и тестовыми скриптами, но когда вы пытаетесь запланировать его выполнение в качестве Monitor, отображаются только HTTP-запросы. В результате вам приходится либо писать отдельную синтетическую проверку в другом инструменте, либо создавать небольшой скрипт для запуска CLI по cron. Оба варианта работают. Но оба далеки от идеала.

Этот пробел постепенно закрывается. Postman Monitors теперь запускают gRPC и GraphQL запросы в режиме бета-тестирования. Я расскажу, как запланировать gRPC-вызов (включая стриминг), как отслеживать GraphQL-запрос (query) или мутацию (mutation), как выглядят ваши тестовые скрипты для каждого случая и куда отправлять отзывы, пока функция находится в разработке.

Что входит в бета-версию

Вот что бета-версия поддерживает на данный момент:

  • Унарные gRPC-вызовы — стандартный паттерн запрос/ответ.
  • gRPC со стримингом со стороны сервера (server-streaming), клиента (client-streaming) и двунаправленный (bidirectional), с некоторыми оговорками относительно стриминга, о которых я упомяну позже.
  • GraphQL-запросы и мутации по протоколу HTTP.
  • Существующие данные аутентификации, переменные и тестовые скрипты, которые переносятся из вашей коллекции без необходимости переписывания.

Что еще не вошло: подписки GraphQL (subscriptions), клиентский стриминг с несколькими сообщениями и более богатый набор хелперов для проверки стримов. Они находятся в дорожной карте.

Стоит отметить: это та же самая модель выполнения Monitors, которую вы уже знаете. Планировщик берет вашу коллекцию, выполняет запросы по порядку, оценивает тестовые скрипты и публикует результаты. Единственное, что изменилось, — это набор протоколов, которые понимает механизм выполнения.

Мониторинг gRPC-вызова

Начнем с самого простого случая: унарный gRPC-вызов к пользовательскому сервису. У вас уже есть запрос в коллекции, подключенный к .proto-файлу с выбранным методом. Чтобы запланировать его, нажмите правой кнопкой мыши по коллекции, выберите Create a monitor (Создать монитор) и настройте нужное расписание.

Для валидации gRPC-ответы используют тот же объект pm.response, который вы применяете для HTTP-тестов. Свойства просто адаптированы под gRPC:

Если статус gRPC возвращается отличным от OK, например UNAVAILABLE, DEADLINE_EXCEEDED или PERMISSION_DENIED, ваш монитор завершается с ошибкой, и вы получаете уведомление. Это полезное поведение по умолчанию. На практике я также проверяю структуру сообщения, поскольку нормальный статус с пустым телом ответа с точки зрения вызывающей стороны все равно означает сломанную конечную точку.

Для authentication, если вы используете gRPC-метаданные для Bearer-токенов, настройте их один раз для запроса, и они будут передаваться при каждом запуске монитора. Храните сам токен в переменной среды (Environment) монитора, но никогда — в определении запроса.

Мониторинг gRPC-стримов

Стриминг — это то, где все становится интереснее. Серверный стриминг (server-streaming) — главная особенность этой бета-версии: вы отправляете одно сообщение, сервер отправляет много, и вы можете проверять сообщения по мере их поступления.

У вас есть два варианта тестирования. Первый — хук скрипта On message, который выполняется для каждого сообщения, отправляемого сервером:

Второй вариант — проверка после завершения стрима на обычной вкладке Tests:

Лично я склоняюсь к проверкам после завершения стрима именно для Monitors. Проверки каждого сообщения полезны при отладке в реальном времени в клиенте, но когда монитор падает в 3 часа ночи, сообщение «стрим вернул 2 сообщения вместо 5» является гораздо более понятным сигналом, чем 20 результатов проверки отдельных сообщений.

Предупреждение о клиентском стриминге и двунаправленном стриминге: бета-версия в настоящее время поддерживает только одно клиентское сообщение на вызов. Если ваш двунаправленный поток зависит от отправки последовательности сообщений обратно на сервер, дождитесь обновления с поддержкой множества сообщений, прежде чем переносить эту проверку в монитор. Унарный и серверный стриминг — это те сценарии, которые отлично работают уже сегодня.

Мониторинг GraphQL-запросов и мутаций

Запросы GraphQL «под капотом» являются HTTP-запросами, но модель сбоев в них отличается настолько, что о ней стоит упомянуть отдельно. GraphQL-сервер может вернуть статус 200 OK с телом, полным ошибок, поэтому простая проверка кода состояния покажет успех, даже если ваше API сломано.

Вот запрос, который я использую в качестве шаблона для GraphQL Monitors:

pm.response.data и pm.response.errors — это два свойства, которые здесь имеют наибольшее значение. Вместе они показывают, действительно ли операция прошла успешно с точки зрения клиента, что и должен проверять монитор.

Для мутации я бы также проверял возвращаемую сущность, чтобы отловить случаи, когда сервер принимает мутацию, но молча отбрасывает поля. Что-то вроде:

Подписки (Subscriptions) пока не входят в бета-версию. Если вы зависите от них, пока оставьте свои текущие проверки подписок на месте.

Настройка расписания

Как только в ваших запросах появятся тесты, настройка расписания будет такой же, как и для любого другого монитора. Выберите частоту (от каждых 5 минут до еженедельной), укажите регион, если вам важен географический охват, прикрепите Environment с вашими учетными данными и включите уведомления. Обычно для нового монитора я начинаю с 15-ми интервалов и сокращаю их после недели стабильной работы. Запуск ресурсоемких запросов каждую минуту во время настройки быстро накапливается.

Два совета из опыта запуска этого на моих собственных сервисах:

  • Используйте выделенную среду (Monitor Environment). Не используйте повторно вашу локальную среду разработки. Создайте среду только с теми переменными, которые нужны монитору, используйте секретные переменные для токенов и обновляйте их по тому же графику, что и все остальное.
  • Держите коллекцию сфокусированной. Монитор должен проверять что-то одно: критическое чтение, мутацию для проверки работоспособности (health-check) или пульс стриминга. Если он падает, вы хотите точно знать, что сломалось. Коллекция из 30 запросов с одним падающим тестом посередине — это квест по отладке, который вам вряд ли захочется решать в 3 часа ночи.

Отзывы во время бета-тестирования

Это бета-версия, и команда внимательно прислушивается к отзывам. Если вы столкнетесь с шероховатостями — например, хук скрипта ведет себя не так, как ожидалось, .proto-файл не загружается или вам не хватает какой-то метрики в отчете о запуске, — откройте тикет в репозитории postman-app-support на GitHub. Четко пометьте его (gRPC или GraphQL, Monitors) и включите структуру коллекции вместе с выводом ошибок. Что команда просила указать в первую очередь:

  • Какие паттерны стриминга вы хотели бы видеть поддерживаемыми в следующем релизе
  • Сценарии использования подписок GraphQL, которые вы бы перенесли в Monitors, если бы они были доступны
  • Вспомогательные функции для проверок (assertion helpers), которые вам нужны для стриминговых ответов

Дорожная карта уже включает клиентский стриминг с множеством сообщений, подписки GraphQL и более богатый набор проверок для стримов, но порядок реализации зависит от того, что именно люди пытаются сделать на практике.

Итоги

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

Что мне нравится в этом релизе — он не требует от вас ничего переписывать. Тот же запрос, та же аутентификация, те же тестовые скрипты — теперь они просто работают по расписанию. Именно так и нужно выпускать функции для Monitors.

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

Ресурсы

  • Документация по Postman Monitors: Обзор принципов работы мониторов, параметров планирования и настройки уведомлений.
  • Написание тестов в Postman: Справочник по pm.test, pm.response и модели скриптов, используемой в мониторах gRPC и GraphQL.
  • gRPC в Postman: Как работают gRPC-запросы, файлы .proto и потоковая передача в клиенте Postman.
  • GraphQL в Postman: Как создавать и отправлять запросы и мутации GraphQL в коллекции.
  • Проблемы postman-app-support на GitHub: Место для отправки отзывов о бета-версии, сообщений об ошибках и запросов функций.
  • Официальная документация gRPC: Справочные материалы по унарным, серверным потоковым, клиентским потоковым и двунаправленным шаблонам RPC.
← Все статьи

О чём эта статья

Ещё в разделе «Разработка ПО»

Все →
Mailgun SMTP переходит на TLS 1.2: что нужно сделать до обновления 1 марта 2027 года
Mailgun

Mailgun SMTP переходит на TLS 1.2: что нужно сделать до обновления 1 марта 2027 года

Плагин Postman для Claude Code: практическое руководство
Postman

Плагин Postman для Claude Code: практическое руководство

Sonar и LTM: проверка кода с помощью ИИ в масштабах предприятия
SonarSource

Sonar и LTM: проверка кода с помощью ИИ в масштабах предприятия

Новые возможности в OpenText Content Management
OpenText

Новые возможности в OpenText Content Management

Внедрение контроля политик в стек ИИ с помощью Praxis
IBM

Внедрение контроля политик в стек ИИ с помощью Praxis

Брендовые и небрендовые запросы в ИИ-поиске: как их отслеживать
Hubspot

Брендовые и небрендовые запросы в ИИ-поиске: как их отслеживать

Ещё от Postman

Плагин Postman для Claude Code: практическое руководство
Postman

Плагин Postman для Claude Code: практическое руководство

Когда ИИ-модель нашла утекший API-ключ, он все еще работал
Postman

Когда ИИ-модель нашла утекший API-ключ, он все еще работал

Context Graph делает GPT 6.1 Terra на 42% быстрее и использует на 43% меньше токенов
Postman

Context Graph делает GPT 6.1 Terra на 42% быстрее и использует на 43% меньше токенов

Мой агент для отпуска испытывает трудности: насколько сервисы готовы к работе с ИИ?
Postman

Мой агент для отпуска испытывает трудности: насколько сервисы готовы к работе с ИИ?

Ваш первый тест производительности в Postman: Краткое руководство
Postman

Ваш первый тест производительности в Postman: Краткое руководство

Управление контекстом MCP с помощью Postman Fabric Gateway
Postman

Управление контекстом MCP с помощью Postman Fabric Gateway