tianfeng_task_modules/api_doc/API接口文档.md

520 lines
10 KiB
Markdown
Raw Normal View History

2025-03-18 18:34:03 +08:00
# 天风任务系统 API 接口文档
## 目录
- [组件管理 API](#组件管理-api)
- [获取所有组件类型及详细信息](#获取所有组件类型及详细信息)
- [获取指定类型的组件详细信息](#获取指定类型的组件详细信息)
- [自动发现并注册组件](#自动发现并注册组件)
- [任务管理 API](#任务管理-api)
- [获取任务列表](#获取任务列表)
- [获取任务类型列表](#获取任务类型列表)
- [创建任务](#创建任务)
- [删除任务](#删除任务)
- [批量删除任务](#批量删除任务)
- [更新任务基本信息](#更新任务基本信息)
- [获取任务编辑信息](#获取任务编辑信息)(还没完成)
- [获取可用的子任务列表](#获取可用的子任务列表)
- [任务参数管理 API](#任务参数管理-api)
- [获取任务输入参数表单字段定义](#获取任务输入参数表单字段定义)
- [获取任务输入参数配置](#获取任务输入参数配置)
- [更新任务输入参数配置](#更新任务输入参数配置)
## 组件管理 API
### 获取所有组件类型及详细信息
获取系统中所有组件类型及其详细信息。
**接口地址**`/component/components`
**请求方式**`GET`
**请求参数**:无
**响应数据**
```json
{
"code": 200,
"message": "获取组件类型成功",
"data": {
"component_types": ["string"],
"component_type_info": [
{
"type": "string",
"name": "string"
}
],
"component_categories": {
"category": ["string"]
},
"component_details": ["object"],
"component_details_by_type": {
"type": ["object"]
}
}
}
```
**说明**
- `component_types`: 所有组件类型的列表
- `component_type_info`: 包含中文名称的组件类型信息
- `component_categories`: 按类别分组的组件类型
- `component_details`: 所有组件的详细配置
- `component_details_by_type`: 按组件类型分组的详细配置
### 获取指定类型的组件详细信息
获取指定类型的组件详细信息。
**接口地址**`/component/components/{component_type}`
**请求方式**`GET`
**请求参数**
| 参数名 | 类型 | 必须 | 说明 |
|-------|------|------|------|
| component_type | string | 是 | 组件类型 |
**响应数据**
```json
{
"code": 200,
"message": "获取组件详细信息成功",
"data": {
"components": ["object"]
}
}
```
**说明**
- `components`: 指定类型的组件详细配置列表
### 自动发现并注册组件
自动发现并注册组件。
**接口地址**`/component/components/discover`
**请求方式**`POST`
**请求参数**
```json
{
"package_name": "string"
}
```
**响应数据**
```json
{
"code": 200,
"message": "自动发现组件成功,共发现 x 个组件",
"data": {
"component_types": ["string"]
}
}
```
**说明**
- `component_types`: 发现的组件类型列表
## 任务管理 API
### 获取任务列表
获取任务列表,支持多种筛选条件、排序和分页。
**接口地址**`/tasks`
**请求方式**`GET`
**请求参数**
| 参数名 | 类型 | 必须 | 说明 |
|-------|------|------|------|
| status | string | 否 | 任务状态 |
| task_type | string | 否 | 任务类型 |
| name | string | 否 | 任务名称(模糊查询)|
| is_scheduled | boolean | 否 | 是否为定时任务 |
| created_start | integer | 否 | 创建时间起始(毫秒时间戳)|
| created_end | integer | 否 | 创建时间结束(毫秒时间戳)|
| sort_by | string | 否 | 排序字段,默认为 CREATED_AT |
| sort_order | string | 否 | 排序方式,默认为 DESC |
| page | integer | 否 | 页码,默认为 1 |
| page_size | integer | 否 | 每页数量,默认为 10 |
**响应数据**
```json
{
"code": 200,
"message": "获取任务列表成功",
"data": {
"tasks": ["object"],
"pagination": {
"page": 1,
"page_size": 10,
"total": 100,
"total_pages": 10
}
}
}
```
**说明**
- `tasks`: 任务列表
- `pagination`: 分页信息
### 获取任务类型列表
获取系统中所有任务类型列表。
**接口地址**`/task/types`
**请求方式**`GET`
**请求参数**:无
**响应数据**
```json
{
"code": 200,
"message": "获取任务类型列表成功",
"data": [
{
"key": "string",
"name": "string",
"description": "string",
"value": "string"
}
]
}
```
**说明**
- `key`: 任务类型的键
- `name`: 任务类型的名称
- `description`: 任务类型的描述
- `value`: 任务类型的枚举值
### 创建任务
创建一个新任务。
**接口地址**`/task/create`
**请求方式**`POST`
**请求参数**
```json
{
"name": "string",
"task_type": "string"
}
```
**响应数据**
```json
{
"code": 200,
"message": "创建任务成功",
"data": {
"task_id": "string",
"name": "string",
"task_type": "string",
"task_type_name": "string",
"created_at": "timestamp",
"updated_at": "timestamp"
}
}
```
**说明**
- `task_id`: 任务ID
- `name`: 任务名称
- `task_type`: 任务类型
- `task_type_name`: 任务类型中文名称
### 删除任务
删除指定ID的任务。
**接口地址**`/task/{task_id}`
**请求方式**`DELETE`
**请求参数**
| 参数名 | 类型 | 必须 | 说明 |
|-------|------|------|------|
| task_id | string | 是 | 任务ID |
**响应数据**
```json
{
"code": 200,
"message": "删除任务成功",
"data": null
}
```
### 批量删除任务
批量删除多个任务。
**接口地址**`/task/batch`
**请求方式**`DELETE`
**请求参数**
```json
{
"task_ids": ["string"]
}
```
**响应数据**
```json
{
"code": 200,
"message": "批量删除任务成功,共删除 x 个任务",
"data": {
"deleted_count": 0,
"total_count": 0,
"not_found_ids": ["string"]
}
}
```
**说明**
- `deleted_count`: 成功删除的任务数量
- `total_count`: 总共请求删除的任务数量
- `not_found_ids`: 未找到的任务ID列表
### 更新任务基本信息
更新任务的基本信息。
**接口地址**`/task/{task_id}`
**请求方式**`PUT`
**请求参数**
| 参数名 | 类型 | 必须 | 说明 |
|-------|------|------|------|
| task_id | string | 是 | 任务ID |
```json
{
"name": "string",
"description": "string",
"task_type": "string",
"blocks": ["object"],
"variables": ["object"],
"schedule": "object"
}
```
**响应数据**
```json
{
"code": 200,
"message": "更新任务成功",
"data": {
"task": "object"
}
}
```
### 获取任务编辑信息
获取任务的编辑信息,包括任务实例、组件、参数等。
**接口地址**`/task/{task_id}/edit`
**请求方式**`GET`
**请求参数**
| 参数名 | 类型 | 必须 | 说明 |
|-------|------|------|------|
| task_id | string | 是 | 任务ID |
**响应数据**
```json
{
"code": 200,
"message": "获取任务编辑信息成功",
"data": {
"task": "object",
"instance": "object",
"component_types": "object",
"common_params": "object",
"task_input_params": ["object"],
"block_output_params": "object",
"context_params": "object"
}
}
```
**说明**
- `task`: 任务基本信息
- `instance`: 任务实例信息
- `component_types`: 组件类型信息
- `common_params`: 常用参数数据
- `task_input_params`: 任务输入参数
- `block_output_params`: 块输出参数
- `context_params`: 上下文参数
### 获取可用的子任务列表
获取可用的子任务列表,用于任务嵌套。
**接口地址**`/tasks/available-subtasks`
**请求方式**`GET`
**请求参数**
| 参数名 | 类型 | 必须 | 说明 |
|-------|------|------|------|
| current_task_id | string | 否 | 当前任务ID用于排除自身 |
**响应数据**
```json
{
"code": 200,
"message": "获取可用子任务列表成功",
"data": {
"subtasks": [
{
"task_id": "string",
"name": "string"
}
]
}
}
```
## 任务参数管理 API
### 获取任务输入参数表单字段定义
获取任务输入参数表单字段定义,用于前端表单生成。
**接口地址**`/task/input-params/fields`
**请求方式**`GET`
**请求参数**:无
**响应数据**
```json
{
"code": 200,
"message": "获取任务输入参数表单字段定义成功",
"data": {
"form_fields": ["object"]
}
}
```
**说明**
- `form_fields`: 表单字段定义列表
### 获取任务输入参数配置
获取任务输入参数配置,包括系统默认参数和用户自定义参数。
**接口地址**`/task/{task_id}/input-params`
**请求方式**`GET`
**请求参数**
| 参数名 | 类型 | 必须 | 说明 |
|-------|------|------|------|
| task_id | string | 是 | 任务ID |
| instance_id | string | 否 | 任务实例ID不传则使用最新实例 |
**响应数据**
```json
{
"code": 200,
"message": "获取任务输入参数成功",
"data": {
"task_id": "string",
"instance_id": "string",
"params": ["object"]
}
}
```
**说明**
- `params`: 任务输入参数列表
### 更新任务输入参数配置
更新任务输入参数配置,批量保存用户自定义的任务输入参数配置。
**接口地址**`/task/{task_id}/input-params`
**请求方式**`POST`
**请求参数**
| 参数名 | 类型 | 必须 | 说明 |
|-------|------|------|------|
| task_id | string | 是 | 任务ID |
| instance_id | string | 否 | 任务实例ID不传则使用最新实例或创建新实例 |
请求体:
```json
[
{
"param_name": "string",
"label": "string",
"param_type": "string",
"required": true,
"default_value": "any",
"description": "string"
}
]
```
**响应数据**
```json
{
"code": 200,
"message": "更新任务输入参数成功",
"data": {
"task_id": "string",
"instance_id": "string",
"updated_params_count": 0,
"has_changes": true
}
}
```
**说明**
- `updated_params_count`: 更新的参数数量
- `has_changes`: 是否有参数变动