取得 AX Code · 免費文件

本頁譯自英文文件。指令、識別名稱與範例保持原樣。執行環境 7.24.4 · SDK 2.6.7。 英文原文

HTTP 與 OpenAPI 相容

狀態:現行 範圍:現行狀態 上次審閱:2026-09-02 負責人:ax-code sdk

AX Code 有兩條整合路徑:

下面的 JSR 套件名稱已可發行,但尚未收到第一個公開版本。

  • 第一方 TypeScript 與 JavaScript 應用程式整合,請使用 @defai-digital/ax-code-sdk。
  • 第一方應用程式與桌面 GUI 工作,請使用 @defai-digital/ax-code-sdk/headless 或 @defai-digital/ax-code-sdk/grpc。
  • 當需要另一種語言或相容處理程序邊界時,請使用 ax-code serve 加上 OpenAPI 契約。
  • 當 AX Code 擁有傳輸兩端、且是第一方桌面 GUI 工作時,請使用原生 SDK 傳輸。

HTTP/OpenAPI 路徑是相容與產生用戶端的基礎設施。它讓 Python、Go、Java、Rust 與其他用戶端呼叫同一個伺服器 API,而 AX Code 不必承諾為每種語言維護完整的官方套件。當 gRPC/原生契約可用時,不應把它當成第一方桌面 GUI 內部偏好的特權橋接,它也不再以第一方 JavaScript SDK 子路徑暴露。

選擇路徑

需求 建議路徑 原因
同一處理程序中的 TypeScript 或 JavaScript 原始碼工作區 createAgent() 配接器 只有在刻意可解析私有 AX Code 執行環境原始碼套件時才可用
第一方桌面/原生 GUI @defai-digital/ax-code-sdk/grpc 較窄的無介面契約、伺服器串流、對中繼資料/期限友善,且較少暴露 WebView
帶有本機後端的 TypeScript 或 JavaScript @defai-digital/ax-code-sdk/headless 保持生命週期與事件投影的型別,而不暴露完整的 HTTP SDK 介面
Python、Go、Java、Rust 或其他執行環境 從 packages/sdk/openapi.json 產生用戶端 重用 HTTP 契約,而不必為每種語言增加第一方套件維護
CI、自動化或一次性指令碼 對 ax-code serve 發出 HTTP 呼叫 部署模型簡單,處理程序隔離也容易

目前的官方項目

  • @defai-digital/ax-code-sdk 是第一方 TypeScript 與 JavaScript SDK;其公開應用程式邊界是 headless 與 grpc。
  • @defai-digital/ax-code-sdk/grpc 是第一方選用的桌面/原生無介面傳輸外觀。
  • @defai-digital/ax-code-sdk/headless 是第一方 TypeScript 與 JavaScript 生命週期/事件 SDK,用於本機後端處理程序邊界。
  • packages/sdk/openapi.json 是供產生 HTTP 用戶端的 OpenAPI 快照。
  • 產生的非 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 標頭。位於 /doc 的即時 OpenAPI 文件與所有伺服器端點都 僅限迴路。

SDK 管理的後端輔助程式一律拒絕例如 0.0.0.0 的網路主機名稱。舊有的 allowNetworkBind 選項為了 原始碼相容而保留,但不再能繞過僅限本機的原則。桌面 GUI 殼層應偏好 @defai-digital/ax-code-sdk/grpc 或處理程序內 SDK 邊界。

HTTP 執行環境輔助程式不再是公開的 JavaScript SDK 子路徑。套件仍包含產生的用戶端內部實作, 因為 @defai-digital/ax-code-sdk/headless、gRPC HTTP 後備,以及舊有的 AX Code 執行環境程式碼會使用它們,但外部 整合應使用無介面、gRPC,或從 OpenAPI 快照產生的用戶端,而不是從 @defai-digital/ax-code-sdk 匯入 HTTP 執行環境 值。

檢查伺服器健康狀態:

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

在把快照驗證為 JSON 與 OpenAPI 之後,從 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. 若用戶端暴露事件 API,則測試串流或 SSE 行為。
  4. 記載目錄範圍標頭與驗證行為。
  5. 發布、版本控制與所有權必須明確。

SDK 套件包含目前快照的輕量本機防護:

pnpm run check:openapi

在 SDK 套件內工作時,也可使用套件層級指令:

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

這會驗證 packages/sdk/openapi.json 是可剖析的 JSON、宣告 OpenAPI 3.x,並包含產生用戶端所需的核心路由。