21 KiB
AI文章生成管理平台 API接口文档
接口概述
- Base URL:
http://127.0.0.1:8216 - 搜索服务:
http://127.0.0.1:8321 - 数据格式: JSON
- 字符编码: UTF-8
- 认证方式: JWT Token (Bearer)
统一响应格式
成功响应
{
"code": 200,
"message": "success",
"data": {}
}
错误响应
{
"code": 400,
"message": "错误信息",
"data": null
}
状态码说明
| 状态码 | 说明 |
|---|---|
| 200 | 请求成功 |
| 400 | 请求参数错误 |
| 401 | 未授权,需要登录 |
| 403 | 权限不足 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |
一、基础接口
1.1 根路径
接口: GET /
认证: 无需认证
响应数据:
{
"code": 200,
"message": "万花筒API服务正常运行",
"data": {
"version": "1.0",
"service": "wht_api"
}
}
1.2 健康检查
接口: GET /health
认证: 无需认证
响应数据:
{
"code": 200,
"message": "服务正常",
"data": {
"status": "healthy",
"timestamp": 1704267825000,
"version": "2.0"
}
}
二、认证接口
2.1 统一登录
接口: POST /api/auth/login
认证: 无需认证
支持方式: 用户名登录、手机号登录
请求参数(用户名方式):
{
"username": "13621242430",
"password": "admin123"
}
请求参数(手机号方式):
{
"phone": "13621242430",
"password": "admin123"
}
响应数据:
{
"code": 200,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"user": {
"id": 1,
"username": "13621242430",
"enterprise_id": 1
}
}
}
2.2 员工登录
接口: POST /api/auth/employee/login
认证: 无需认证
请求参数:
{
"phone": "13800138001",
"password": "123456"
}
响应数据:
{
"code": 200,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"employee": {
"id": 1,
"name": "张三",
"phone": "13800138001",
"enterprise_id": 1
}
}
}
2.3 用户登出
接口: POST /api/auth/logout
认证: 可选(建议携带token)
请求头:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
响应数据:
{
"code": 200,
"message": "登出成功",
"data": null
}
三、工作台接口
3.1 工作台概览
接口: GET /api/dashboard/overview
认证: 需要token
请求头:
Authorization: Bearer {token}
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total_articles": 1250,
"published_today": 45,
"total_authors": 128,
"active_products": 23
}
}
3.2 最近发布
接口: GET /api/dashboard/recent-publishes
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | int | 否 | 返回条数,默认10 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"id": 1,
"title": "冬季护肤小技巧",
"author_name": "张医生",
"product_name": "保湿面霜",
"published_at": "2024-12-29 15:30:00"
}
]
}
}
3.3 热门产品
接口: GET /api/dashboard/hot-products
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| limit | int | 否 | 返回条数,默认5 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"id": 1,
"product_name": "保湿面霜",
"publish_count": 156,
"image_url": "https://oss.example.com/product1.jpg"
}
]
}
}
四、企业管理接口
4.1 获取企业列表
接口: GET /api/enterprises/list
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码,默认1 |
| pageSize | int | 否 | 每页数量,默认20 |
| keyword | string | 否 | 搜索关键词 |
| status | string | 否 | 状态筛选 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total": 50,
"list": [
{
"id": 1,
"name": "示例医疗集团",
"short_name": "示例医疗",
"phone": "13800138000",
"email": "admin@example.com",
"status": "active",
"created_at": "2024-01-15 10:00:00"
}
]
}
}
4.2 企业统计
接口: GET /api/enterprises/stats
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total_count": 50,
"active_count": 45,
"disabled_count": 5
}
}
4.3 获取企业信息
接口: GET /api/enterprises/info
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"id": 1,
"name": "示例医疗集团",
"short_name": "示例医疗",
"phone": "13800138000",
"email": "admin@example.com",
"created_at": "2024-01-15 10:00:00"
}
}
4.4 更新企业信息
接口: PUT /api/enterprises/info
认证: 需要token
请求参数:
{
"short_name": "新名称",
"email": "new@example.com"
}
响应数据:
{
"code": 200,
"message": "更新成功",
"data": null
}
4.5 修改密码
接口: PUT /api/enterprises/change-password
认证: 需要token
请求参数:
{
"old_password": "123456",
"new_password": "654321"
}
响应数据:
{
"code": 200,
"message": "密码修改成功",
"data": null
}
五、图片管理接口
5.1 图片列表
接口: GET /api/images/list
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码 |
| pageSize | int | 否 | 每页数量 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total": 100,
"list": [
{
"id": 1,
"image_name": "产品展示图",
"image_url": "https://oss.example.com/image1.jpg",
"image_type_name": "产品图",
"width": 1920,
"height": 1080,
"file_size": 524288,
"created_at": "2024-12-29 10:00:00"
}
]
}
}
5.2 图片仪表盘
接口: GET /api/images/list_dashboard
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total_images": 1250,
"total_types": 8,
"total_tags": 45,
"recent_uploads": 23
}
}
5.3 上传图片
接口: POST /api/images/upload
认证: 需要token
请求参数: multipart/form-data
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| image | file | 是 | 图片文件 |
| image_name | string | 是 | 图片名称 |
| image_type_name | string | 否 | 图片类型 |
| tag_keywords | string | 否 | 标签,逗号分隔 |
响应数据:
{
"code": 200,
"message": "上传成功",
"data": {
"id": 1,
"image_url": "https://oss.example.com/image1.jpg",
"thumbnail_url": "https://oss.example.com/thumb1.jpg"
}
}
5.4 删除图片
接口: DELETE /api/images/:id
认证: 需要token
响应数据:
{
"code": 200,
"message": "删除成功",
"data": null
}
5.5 标签名称列表
接口: GET /api/images/tags/names/list
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码 |
| pageSize | int | 否 | 每页数量 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total": 50,
"list": [
{
"id": 1,
"tag_name": "美白",
"description": "美白相关标签",
"usage_count": 156
}
]
}
}
5.6 创建标签名称
接口: POST /api/images/tags/names/create
认证: 需要token
请求参数:
{
"tag_name": "美白",
"description": "美白相关标签"
}
响应数据:
{
"code": 200,
"message": "创建成功",
"data": {
"id": 1
}
}
5.7 更新标签名称
接口: PUT /api/images/tags/names/:id
认证: 需要token
请求参数:
{
"tag_name": "美白淡斑",
"description": "美白淡斑相关"
}
5.8 删除标签名称
接口: DELETE /api/images/tags/names/:id
认证: 需要token
5.9 标签关系列表
接口: GET /api/images/tags/relations/list
认证: 需要token
说明: 查询图片与标签的关联关系
5.10 图片类型列表
接口: GET /api/images/types/list
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"id": 1,
"type_name": "产品图",
"description": "产品展示图片",
"image_count": 156
}
]
}
}
5.11 创建类型
接口: POST /api/images/types/create
认证: 需要token
请求参数:
{
"type_name": "产品图",
"description": "产品展示图片"
}
5.12 更新类型
接口: PUT /api/images/types/:id
认证: 需要token
5.13 删除类型
接口: DELETE /api/images/types/:id
认证: 需要token
5.14 标签列表
接口: GET /api/images/tags/list
认证: 需要token
说明: 获取图片标签列表(图片-标签关联)
5.15 创建标签
接口: POST /api/images/tags/create
认证: 需要token
说明: 为图片添加标签
5.16 删除标签
接口: DELETE /api/images/tags/:id
认证: 需要token
说明: 删除图片标签关联
六、日志管理接口
6.1 获取操作日志
接口: GET /api/log/logs
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码 |
| pageSize | int | 否 | 每页数量 |
| action | string | 否 | 操作类型 |
| status | string | 否 | 状态:success/error |
| start_date | string | 否 | 开始日期 |
| end_date | string | 否 | 结束日期 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total": 1000,
"list": [
{
"id": 1,
"user_id": 1,
"action": "create_article",
"description": "创建文章:冬季护肤小技巧",
"status": "success",
"created_at": "2024-12-29 14:30:00"
}
]
}
}
6.2 日志文件列表
接口: GET /api/log/logs/files
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"files": [
{
"filename": "article_server.log",
"size": 1024000,
"modified_at": "2024-12-29 15:00:00"
}
]
}
}
6.3 文件日志内容
接口: GET /api/log/logs/file
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| filename | string | 是 | 文件名 |
| lines | int | 否 | 读取行数,默认100 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"content": "[2024-12-29 15:00:00] INFO: 服务启动\n..."
}
}
七、文章管理接口
7.1 文章列表
接口: GET /api/articles/list
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码 |
| pageSize | int | 否 | 每页数量 |
| status | string | 否 | 状态筛选 |
| keyword | string | 否 | 搜索关键词 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total": 500,
"list": [
{
"id": 1,
"title": "冬季护肤小技巧",
"topic": "护肤",
"content": "文章内容...",
"author_name": "张医生",
"status": "published",
"created_at": "2024-12-29 10:00:00"
}
]
}
}
7.2 文章仪表盘
接口: GET /api/articles/list_dashboard
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total_articles": 1250,
"published_count": 856,
"draft_count": 394,
"today_generated": 23
}
}
7.3 生成文章
接口: POST /api/articles/generate
认证: 需要token
请求参数:
{
"topic": "冬季护肤",
"author_id": 1,
"product_id": 5,
"template_id": 2
}
响应数据:
{
"code": 200,
"message": "生成成功",
"data": {
"id": 1,
"title": "冬季护肤小技巧",
"content": "..."
}
}
7.4 文章详情
接口: GET /api/articles/:id
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"id": 1,
"title": "冬季护肤小技巧",
"topic": "护肤",
"content": "详细内容...",
"author_id": 1,
"author_name": "张医生",
"status": "published",
"created_at": "2024-12-29 10:00:00"
}
}
7.5 更新文章
接口: PUT /api/articles/:id
认证: 需要token
请求参数:
{
"title": "新标题",
"content": "新内容",
"status": "published"
}
响应数据:
{
"code": 200,
"message": "更新成功",
"data": null
}
7.6 批量发布(账号循环)
接口: POST /api/articles/batch-published-account-cycle
认证: 需要token
请求参数:
{
"article_ids": [1, 2, 3, 4, 5],
"cycle_mode": "round_robin"
}
响应数据:
{
"code": 200,
"message": "批量发布成功",
"data": {
"success_count": 5,
"failed_count": 0
}
}
7.7 批量发布(指定作者)
接口: POST /api/articles/batch-published-review
认证: 需要token
请求参数:
{
"article_ids": [1, 2, 3],
"author_id": 5
}
响应数据:
{
"code": 200,
"message": "批量发布成功",
"data": {
"success_count": 3,
"failed_count": 0
}
}
八、员工管理接口
8.1 员工列表
接口: GET /api/employees/list
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码 |
| pageSize | int | 否 | 每页数量 |
| keyword | string | 否 | 搜索关键词 |
| status | string | 否 | 状态筛选 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total": 50,
"list": [
{
"id": 1,
"name": "张三",
"phone": "13800138001",
"role": "员工",
"status": "active",
"created_at": "2024-01-15 10:00:00"
}
]
}
}
8.2 员工统计
接口: GET /api/employees/stats
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total_count": 50,
"active_count": 45,
"inactive_count": 5
}
}
8.3 添加员工
接口: POST /api/employees/add
认证: 需要token
请求参数:
{
"name": "张三",
"phone": "13800138001",
"password": "123456",
"role": "员工"
}
响应数据:
{
"code": 200,
"message": "添加成功",
"data": {
"id": 1
}
}
8.4 删除员工
接口: DELETE /api/employees/:id
认证: 需要token
说明: 软删除,仅删除登录权限,保留发布记录
响应数据:
{
"code": 200,
"message": "删除成功",
"data": null
}
九、作者管理接口
9.1 作者列表(按科室分组)
接口: GET /api/authors
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"departments": [
{
"department_name": "皮肤科",
"authors": [
{
"id": 1,
"author_name": "张医生",
"title": "主治医师",
"department": "皮肤科"
}
]
}
]
}
}
9.2 创建作者
接口: POST /api/authors
认证: 需要token
请求参数:
{
"author_name": "张医生",
"title": "主治医师",
"department": "皮肤科",
"bio": "专注皮肤护理20年"
}
响应数据:
{
"code": 200,
"message": "创建成功",
"data": {
"id": 1
}
}
9.3 更新作者
接口: PUT /api/authors/:id
认证: 需要token
请求参数:
{
"author_name": "张医生",
"title": "副主任医师",
"department": "皮肤科"
}
响应数据:
{
"code": 200,
"message": "更新成功",
"data": null
}
9.4 删除作者
接口: DELETE /api/authors/:id
认证: 需要token
响应数据:
{
"code": 200,
"message": "删除成功",
"data": null
}
9.5 作者列表(用户关联)
接口: GET /api/authors/list
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| user_id | int | 否 | 用户ID |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"id": 1,
"author_name": "张医生",
"department": "皮肤科"
}
]
}
}
9.6 作者详细列表
接口: GET /api/authors/detail_list
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| page | int | 否 | 页码 |
| pageSize | int | 否 | 每页数量 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"total": 128,
"list": [
{
"id": 1,
"author_name": "张医生",
"title": "主治医师",
"department": "皮肤科",
"bio": "专注皮肤护理20年",
"article_count": 45,
"created_at": "2024-01-15 10:00:00"
}
]
}
}
9.7 科室列表
接口: GET /api/authors/departments
认证: 需要token
响应数据:
{
"code": 200,
"message": "success",
"data": {
"departments": [
{
"department_name": "皮肤科",
"author_count": 12
},
{
"department_name": "内科",
"author_count": 15
}
]
}
}
9.8 搜索作者
接口: GET /api/authors/search
认证: 需要token
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| keyword | string | 是 | 搜索关键词 |
响应数据:
{
"code": 200,
"message": "success",
"data": {
"list": [
{
"id": 1,
"author_name": "张医生",
"title": "主治医师",
"department": "皮肤科"
}
]
}
}
附录
A. 请求头说明
所有需要认证的接口都需要携带以下请求头:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
Content-Type: application/json
B. 分页参数说明
所有列表接口都支持以下分页参数:
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| page | int | 1 | 页码 |
| pageSize | int | 20 | 每页数量,最大100 |
C. 错误码说明
| 错误码 | 说明 | 处理建议 |
|---|---|---|
| 1001 | 用户名/手机号已存在 | 使用其他账号 |
| 1002 | 密码错误 | 检查密码 |
| 1003 | Token过期 | 重新登录 |
| 1004 | 权限不足 | 检查用户角色 |
| 1005 | 资源不存在 | 检查资源ID |
| 1006 | 参数错误 | 检查请求参数 |
D. 业务规则说明
-
文章生成规则
- 支持AI自动生成文章
- 可指定作者、产品、模板
- 生成后状态为topic,需人工审核
-
批量发布规则
- 支持账号循环模式
- 支持指定作者模式
- 发布后状态变为published
-
权限管理规则
- 不同企业之间的数据完全隔离
- 员工只能看到所属企业的数据
- 管理员可以管理所有数据
-
图片管理规则
- 支持OSS存储
- 自动生成缩略图
- 支持标签和类型管理
-
日志记录规则
- 所有关键操作必须记录日志
- 支持按多维度查询日志
- 日志文件每日自动切割
-
作者管理规则
- 支持按科室分组
- 记录作者的文章数量
- 支持模糊搜索
E. 数据库表结构对应
本接口文档对应的数据库表结构:
| 模块 | 核心表 |
|---|---|
| 企业管理 | ai_enterprises |
| 员工管理 | ai_employees |
| 图片管理 | ai_images, ai_image_tags, ai_image_tag_names, ai_image_types |
| 文章管理 | ai_articles |
| 作者管理 | ai_authors |
| 系统管理 | ai_logs, ai_users |
总计: 10+张数据库表
F. 接口数量统计
| 模块 | 接口数量 |
|---|---|
| 基础接口 | 2个 |
| 认证接口 | 3个 |
| 工作台接口 | 3个 |
| 企业管理 | 5个 |
| 图片管理 | 16个 |
| 日志管理 | 3个 |
| 文章管理 | 7个 |
| 员工管理 | 4个 |
| 作者管理 | 8个 |
| 总计 | 51个接口 |
文档版本: v2.0
最后更新: 2025-12-29
维护团队: AI文章生成平台开发团队