Три шага для создания endpoint в Inquir Compute

Быстрый путь от идеи до рабочего endpoint: напишите обработчик, протестируйте его прямо в браузере и опубликуйте маршрут через встроенный API Gateway.

Три шага для создания endpoint в Inquir Compute

Если вам нужно быстро выпустить серверный endpoint, идеальный процесс прост: напишите обработчик, протестируйте его и опубликуйте через gateway. Именно так и задуман Inquir Compute.

Inquir Compute даёт вам редактор в браузере, serverless-среды выполнения для Node.js, Python и Go, встроенный API Gateway, логи, трейсы и hot-контейнеры — всё в одном рабочем процессе. Вместо того чтобы связывать между собой отдельные инструменты для выполнения кода, деплоя, маршрутизации и отладки, вы можете делать всё из одного места.

Это руководство проведёт вас по самому быстрому пути к вашему первому рабочему endpoint.


Шаг 1. Создайте функцию

Начните с раздела Functions и нажмите + New Function. Задайте функции имя, например hello-world, выберите среду выполнения (runtime) и откройте редактор.

Inquir Compute поддерживает три среды выполнения «из коробки»:

  • Node.js 22
  • Python 3.12
  • Go 1.22

Встроенный редактор основан на Monaco, поэтому вы получаете привычный опыт написания кода прямо в браузере, включая редактирование нескольких файлов и управление файлами через drag-and-drop.

Для простого HTTP-endpoint на Node.js можно начать с такого обработчика:

const payload = typeof event.body === 'string'
  ? JSON.parse(event.body || '{}')
  : (event || {});

exports.handler = async (event, context) => {
  return {
    statusCode: 200,
    body: JSON.stringify({
      message: 'Hello from Inquir Compute!',
      input: payload,
    }),
  };
};

Здесь важна одна практическая деталь:

  • когда вы нажимаете Run в редакторе, ваш JSON передаётся напрямую как event
  • когда функция вызывается по HTTP, тело запроса приходит в event.body в виде строки

Именно поэтому условный разбор event.body — это самый безопасный вариант по умолчанию для обработчиков, ориентированных на endpoint.


Шаг 2. Протестируйте и настройте функцию перед публикацией

Прежде чем публиковать функцию как endpoint, запустите её локально в редакторе Inquir.

Вы можете нажать Ctrl+Enter или кнопку Run, чтобы вызвать функцию и изучить:

  • возвращённый результат
  • логи
  • недавние трейсы
  • историю выполнения

Это позволяет легко проверить контракт вашего endpoint до публикации.

На этом этапе также стоит проверить конфигурацию функции:

  • Handler — например, index.handler
  • Runtime — Node.js 22, Python 3.12 или Go 1.22
  • Timeout — по умолчанию 5000 мс
  • Memory — по умолчанию 256 МБ
  • Network access — включайте только если вашему endpoint нужен исходящий HTTP или TCP
  • Environment variables — добавляйте секреты и конфигурацию во вкладке Config

Переменные окружения настраиваются для каждой функции отдельно и внедряются в контейнер во время выполнения. Это подходящее место для API-ключей, токенов, URL сервисов и feature-флагов.

Если вашему endpoint нужно обращаться к OpenAI, Stripe, Slack, GitHub или любому другому внешнему API, не забудьте:

  1. включить сетевой доступ
  2. добавить нужные учётные данные в виде переменных окружения

Шаг 3. Задеплойте функцию и опубликуйте маршрут через API Gateway

Когда функция работает, нажмите Deploy.

Деплой делает для вас две вещи:

  1. публикует функцию в среду выполнения
  2. может прогреть hot-контейнер, чтобы повторные вызовы не проходили полный путь cold start

После этого опубликуйте функцию через встроенный API Gateway.

В разделе Gateway задайте маршрут для вашего endpoint:

  • выберите path (путь)
  • выберите HTTP-метод: GET, POST, PUT, PATCH, DELETE или ANY
  • выберите режим авторизации (auth mode): Public, API Key или Bearer Token
  • при необходимости задайте лимиты запросов (rate limits)
  • при необходимости используйте path-параметры, например /users/:id
  • при необходимости используйте wildcards (маски), например /site/**

По умолчанию маршруты рабочего пространства доступны по адресу:

/gw/<tenant-slug>/...

Если вы используете именованные HTTP API, они доступны по адресу:

/gw/<label>/...

Если ваша инсталляция это поддерживает, вы также можете привязать собственный домен.

Типичный вызов публичного endpoint выглядит так:

curl -X POST https://your-host/gw/your-tenant/hello-world \
  -H "Content-Type: application/json" \
  -d '{"name":"Alice"}'

Если маршрут защищён аутентификацией по API-ключу, вызывайте его так:

curl -X POST https://your-host/gw/your-tenant/hello-world \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your-key" \
  -d '{"name":"Alice"}'

На этом этапе ваша функция — уже не просто код в редакторе. Это рабочий endpoint, который могут использовать фронтенды, вебхуки, внутренние инструменты, процессы по расписанию (cron) или внешние интеграции.


Почему этот процесс такой быстрый

Этот процесс из трёх шагов работает хорошо потому, что Inquir Compute держит весь серверный путь в одном продукте:

  • пишете код в браузере
  • сразу запускаете и отлаживаете
  • деплоите без дополнительной работы с инфраструктурой
  • публикуете через gateway
  • наблюдаете за выполнением через логи и трейсы

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

Это делает Inquir Compute особенно полезным, когда нужно запустить:

  • лёгкий REST-endpoint
  • приёмник webhook
  • внутренний API для вашего фронтенда
  • endpoint для автоматизации, вызываемый задачами по расписанию
  • серверное действие на базе AI

Напоследок

Создание endpoint в Inquir Compute — это не долгий DevOps-процесс. В самом коротком виде это выглядит так:

  1. Создайте функцию
  2. Протестируйте и настройте её
  3. Задеплойте её и опубликуйте маршрут

Этого достаточно, чтобы пройти путь от идеи до рабочего HTTPS-endpoint, где одна платформа отвечает за среду выполнения, gateway и наблюдаемость.

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


Источники