Получить AX Code · БесплатноДокументация

Эта страница переведена с английской документации. Команды, идентификаторы и примеры не изменены. Среда выполнения 7.24.4 · SDK 2.6.7. Английский оригинал

Совместимость HTTP и OpenAPI

Статус: действует Область: текущее состояние Последняя проверка: 2026-09-02 Владелец: SDK ax-code

У AX Code два пути интеграции:

Имя пакета JSR ниже готово к выпуску, но ещё не получило первую публичную версию.

  • Используйте @defai-digital/ax-code-sdk для интеграции приложений на TypeScript и JavaScript первой стороны.
  • Используйте @defai-digital/ax-code-sdk/headless или @defai-digital/ax-code-sdk/grpc для работы приложений и настольного интерфейса первой стороны.
  • Используйте ax-code serve плюс контракт OpenAPI, когда нужен другой язык или граница процесса совместимости.
  • Используйте транспорт собственного SDK для настольного интерфейса первой стороны, где AX Code владеет обоими концами транспорта.

Путь HTTP/OpenAPI — это инфраструктура совместимости и сгенерированных клиентов. Он позволяет Python, Go, Java, Rust и другим клиентам вызывать тот же API сервера, не обязывая AX Code сопровождать полный официальный пакет для каждого языка. Его не следует считать предпочтительным привилегированным мостом внутри настольного интерфейса первой стороны, когда доступен контракт gRPC или собственный контракт, и он больше не открыт как подпути SDK JavaScript первой стороны.

Выбор пути

Нужно Рекомендуемый путь Зачем
TypeScript или JavaScript в том же процессе Адаптер рабочей области исходников createAgent() Доступен, только когда закрытый исходный пакет среды выполнения AX Code намеренно разрешим
Настольный или собственный интерфейс первой стороны @defai-digital/ax-code-sdk/grpc Более узкий контракт headless, серверный поток, удобные метаданные и сроки, меньше открытия WebView
TypeScript или JavaScript с локальным сервером @defai-digital/ax-code-sdk/headless Держит жизненный цикл и проекцию событий типизированными, не открывая полную поверхность SDK HTTP
Python, Go, Java, Rust или другая среда Сгенерировать клиент из packages/sdk/openapi.json Повторно использует контракт HTTP без сопровождения пакета первой стороны для каждого языка
CI, автоматизация или разовые сценарии Вызовы HTTP к ax-code serve Простая модель развёртывания и лёгкая изоляция процесса

Что официально сегодня

  • @defai-digital/ax-code-sdk — SDK TypeScript и JavaScript первой стороны. Его публичные границы приложения — headless и grpc.
  • @defai-digital/ax-code-sdk/grpc — необязательный фасад транспорта headless для настольного и собственного кода первой стороны.
  • @defai-digital/ax-code-sdk/headless — SDK жизненного цикла и событий TypeScript и JavaScript первой стороны для границ процесса локального сервера.
  • packages/sdk/openapi.json — снимок OpenAPI для сгенерированных клиентов HTTP.
  • Сгенерированные клиенты не на JavaScript поддерживаются как интеграции поверх HTTP, но не являются опубликованными пакетами первой стороны, пока нет владельца пакета, проверок и рабочего процесса выпуска.

Базовый поток HTTP

Запустите сервер:

export AX_CODE_SERVER_PASSWORD="$(openssl rand -base64 24)"
ax-code serve --hostname=127.0.0.1 --port=4096

Помощник жизненного цикла @defai-digital/ax-code-sdk/headless порождает одноразовый пароль Basic Auth и автоматически подключает возвращённый клиент с соответствующим заголовком Authorization. Пользователям ручного ax-code serve следует явно задать AX_CODE_SERVER_PASSWORD и отправлять соответствующий заголовок Basic Auth. Живая документация OpenAPI по /doc и все конечные точки сервера работают только на loopback.

Помощники сервера под управлением SDK всегда отвергают сетевые имена узлов вроде 0.0.0.0. Устаревший параметр allowNetworkBind сохранён для совместимости исходного кода, но больше не обходит политику только локального доступа. Оболочкам настольного интерфейса следует предпочитать @defai-digital/ax-code-sdk/grpc или границу SDK в процессе.

Помощники среды HTTP больше не являются публичными подпутями SDK JavaScript. Пакет всё ещё содержит внутренности сгенерированного клиента, потому что ими пользуются @defai-digital/ax-code-sdk/headless, запасной путь gRPC через HTTP и устаревший код среды выполнения AX Code, но внешним интеграциям следует использовать headless, gRPC или клиентов, сгенерированных из снимка OpenAPI, а не импортировать значения среды HTTP из @defai-digital/ax-code-sdk.

Проверьте здоровье сервера:

curl http://127.0.0.1:4096/global/health

Создайте сгенерированных клиентов из снимка OpenAPI после проверки снимка как JSON и OpenAPI:

openapi-python-client generate --path packages/sdk/openapi.json
oapi-codegen -package axcode -generate types,client packages/sdk/openapi.json > axcode.gen.go
openapi-generator-cli generate -i packages/sdk/openapi.json -g java -o ./ax-code-java

Ограждения генерации

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

Закрепляйте версию AX Code и версию сгенерированного клиента вместе. Если схема маршрутов сервера меняется, заново сгенерируйте клиент и выпустите его с ясной заметкой о совместимости.

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

Сохраняйте поведение границы службы. Клиенты не на JavaScript используют путь сервера HTTP и не получают внутрипроцессный createAgent(), выполнение собственных инструментов JavaScript и утилиты @defai-digital/ax-code-sdk/testing.

Прежде чем повышать сгенерированный клиент до статуса первой стороны, покройте трудные части:

  1. Валидация OpenAPI выполняется в CI.
  2. Контрактная проверка запускает ax-code serve и вызывает представительные маршруты.
  3. Поведение потока или SSE проверяется, если клиент открывает API событий.
  4. Заголовки области каталога и поведение аутентификации документированы.
  5. Публикация, версии и владение явны.

Пакет SDK включает лёгкую локальную защиту текущего снимка:

pnpm run check:openapi

Команда уровня пакета также доступна при работе внутри пакета SDK:

pnpm --dir packages/sdk/js run validate:openapi

Она проверяет, что packages/sdk/openapi.json — разбираемый JSON, объявляет OpenAPI 3.x и содержит основные маршруты, нужные сгенерированным клиентам.