API参考

LGOS Studio API 完整指南

探索LGOS Studio的所有API接口,学习如何与框架核心进行交互

LGOS 核心团队
更新于: 2023年10月20日
版本: v4.2.0
API版本: v2

概述

LGOS Studio API 提供了一套完整的接口,用于与框架核心、模块系统和插件架构进行交互。所有API都遵循RESTful设计原则,并使用JSON作为数据交换格式。

基础URL

所有API请求都基于以下基础URL:

https://api.lgos.studio/v2/

API快速导航

认证授权

12个端点

应用管理

18个端点

模块系统

15个端点

数据服务

22个端点

事件系统

8个端点

插件API

14个端点

认证授权

LGOS Studio 使用OAuth 2.0协议进行认证和授权。所有API请求都需要在Authorization头中携带有效的访问令牌。

POST
/auth/token

获取访问令牌

请求参数

参数 类型 描述 必需
grant_type string 授权类型 (password, client_credentials, refresh_token)
username string 用户名 (grant_type=password时必需) 可选
password string 密码 (grant_type=password时必需) 可选
refresh_token string 刷新令牌 (grant_type=refresh_token时必需) 可选

响应示例

json
{ "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...", "token_type": "Bearer", "expires_in": 3600, "refresh_token": "def50200de2a3c4d5b6d7e8f9a0b1c2d...", "scope": "app:read app:write" }
GET
/auth/user

获取当前用户信息

请求头

头名称 描述 必需
Authorization Bearer {access_token}

响应示例

json
{ "id": "user_123456789", "username": "developer@example.com", "name": "张开发", "roles": ["developer", "admin"], "permissions": ["app:create", "app:delete"], "created_at": "2023-01-15T08:30:00Z" }

应用管理

管理LGOS应用程序的生命周期,包括创建、配置、部署和监控。

POST
/apps

创建新应用

请求体

参数 类型 描述 必需
name string 应用名称
template string 应用模板ID
modules array 初始模块列表 可选

响应示例

json
{ "id": "app_abcdef123456", "name": "我的新应用", "status": "creating", "created_at": "2023-10-20T14:30:00Z", "deploy_url": "https://my-new-app.lgos.app" }
GET
/apps/{app_id}/status

获取应用状态

路径参数

参数 类型 描述
app_id string 应用ID

响应示例

json
{ "id": "app_abcdef123456", "name": "我的新应用", "status": "running", "health": "healthy", "cpu_usage": 24.5, "memory_usage": 512, "last_updated": "2023-10-20T15:45:00Z" }

模块系统

管理应用模块,包括安装、配置和依赖管理。

POST
/apps/{app_id}/modules

安装新模块

请求体

参数 类型 描述 必需
module_id string 模块ID
version string 模块版本 可选
config object 模块配置 可选

响应示例

json
{ "module_id": "data_connector", "version": "1.2.0", "status": "installing", "dependencies": ["core_api", "data_service"], "config": { "host": "api.example.com", "port": 443 } }

数据服务

访问和操作应用数据,包括查询、更新和实时数据流。

GET
/data/{dataset}/query

查询数据集

查询参数

参数 类型 描述
filter string JSON格式的过滤条件
sort string 排序字段和方向 (例如: "name:asc")
limit integer 返回结果数量

响应示例

json
{ "data": [ { "id": "record_001", "name": "示例数据", "value": 42, "created_at": "2023-10-01T09:15:00Z" }, { "id": "record_002", "name": "测试条目", "value": 78, "created_at": "2023-10-05T14:20:00Z" } ], "total": 2, "limit": 10, "offset": 0 }

错误代码

LGOS Studio API使用标准HTTP状态码,并包含详细的错误信息。

状态码 错误代码 描述
400 INVALID_REQUEST 请求参数无效或缺失
401 UNAUTHORIZED 缺少有效的认证凭证
403 FORBIDDEN 没有执行此操作的权限
404 RESOURCE_NOT_FOUND 请求的资源不存在
429 RATE_LIMIT_EXCEEDED 请求过于频繁,请稍后重试
500 INTERNAL_ERROR 服务器内部错误

错误响应示例

json
{ "error": { "code": "INVALID_REQUEST", "message": "缺少必需的参数: module_id", "details": { "missing_params": ["module_id"] }, "documentation_url": "https://docs.lgos.studio/errors/INVALID_REQUEST" } }

最佳实践

使用LGOS Studio API时的推荐实践和性能优化技巧。

使用缓存减少请求

对于不经常变化的数据,使用本地缓存减少API调用:

javascript
// 使用内存缓存减少API调用 async function getAppStatus(appId) { const cacheKey = `app_status_${appId}`; // 检查缓存 if (cache.has(cacheKey)) { return cache.get(cacheKey); } // 调用API const response = await fetch(`/apps/${appId}/status`); const data = await response.json(); // 缓存结果(5分钟) cache.set(cacheKey, data, 300); return data; }

批量操作优化

使用批量API减少请求次数:

javascript
// 批量更新多个模块配置 async function updateModules(appId, updates) { const response = await fetch(`/apps/${appId}/modules/batch`, { method: 'PATCH', headers: { 'Content-Type': 'application/json', 'Authorization': `Bearer ${accessToken}` }, body: JSON.stringify({ updates }) }); return response.json(); } // 使用示例 updateModules('app_123', [ { module_id: 'auth', config: { timeout: 5000 } }, { module_id: 'database', config: { pool_size: 20 } } ]);