菜单

API 客户端

相关源文件

本文档涵盖了前端 API 客户端的实现,该客户端提供了 React 前端与 OpenHands 后端服务之间的结构化通信。API 客户端是所有基于 HTTP 的交互的主要接口,包括对话管理、设置配置、Git 集成和身份验证流程。

有关实时 WebSocket 通信的信息,请参阅 WebSocket 通信。有关后端 API 端点实现的信息,请参阅 服务器 API 和通信

概述

API 客户端在 frontend/src/api/open-hands.ts20 中实现为一个静态类 OpenHands,该类集中了与后端 FastAPI 服务器的所有 HTTP 通信。它提供了与后端端点交互的类型安全方法,并管理特定于对话的身份验证标头。

来源:frontend/src/api/open-hands.ts1-399

核心架构

API 客户端遵循单例模式,其静态方法按功能域进行组织。该类维护对话状态并为所有后端通信提供类型化接口。

类结构

OpenHands 类提供了以下关键功能

类别方法目的
对话管理createConversationstartConversationstopConversationdeleteUserConversation对话的 CRUD 操作
身份验证authenticatelogoutgetGitHubAccessToken用户认证和会话管理
配置getModelsgetAgentsgetConfiggetSettingssaveSettings系统和用户配置检索
Git 集成getGitUsersearchGitRepositoriesgetRepositoryBranchesgetGitChanges版本控制操作
工作区操作getWorkspaceZipgetWebHostsgetVSCodeUrl开发环境访问
账单getBalancecreateCheckoutSessioncreateBillingSessionResponse付款和订阅管理

来源:frontend/src/api/open-hands.ts20-39 frontend/src/api/open-hands.ts57-80 frontend/src/api/open-hands.ts191-257

身份验证和会话管理

API 客户端实现基于会话的身份验证,并使用特定于对话的 API 密钥来安全地与后端服务进行通信。

当前对话状态

该类维护对当前活动对话的引用,其中包括会话身份验证详细信息

身份验证流程使用存储在对话对象中的会话 API 密钥

来源:frontend/src/api/open-hands.ts21-51 frontend/src/api/open-hands.ts89-96

API 方法类别

对话管理

对话 API 方法处理 AI 代理交互的完整生命周期

关键对话方法

来源:frontend/src/api/open-hands.ts191-257

配置和选项

API 客户端提供系统配置和可用选项的访问权限

配置方法包括

来源:frontend/src/api/open-hands.ts57-87 frontend/src/api/open-hands.ts262-276

Git 集成

Git 集成方法提供了全面的版本控制功能

Git 集成功能

来源: frontend/src/api/open-hands.ts302-395

工作区操作

工作区方法提供对开发环境资源的访问

工作区操作包括

来源: frontend/src/api/open-hands.ts130-189

HTTP客户端集成

API客户端使用从 [frontend/src/api/open-hands-axios] 导入的配置好的 Axios 实例来处理所有 HTTP 请求。该实例处理

  • 基本 URL 配置
  • 请求/响应拦截器
  • 错误处理
  • 内容类型管理
  • 认证标头注入

该客户端集成了来自 [frontend/src/api/open-hands.types] 的 TypeScript 类型定义,以确保所有 API 交互的类型安全。

来源: frontend/src/api/open-hands.ts15 frontend/src/api/open-hands.ts1-14