Files
template-nuxt4/content/docs/api/rest-api.md
2026-04-29 01:33:33 +08:00

192 lines
4.0 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
title: REST API 完整参考
description: 200+ 标准接口文档覆盖用户、内容、AI、支付等全部模块。
category: api
order: 1
---
# REST API 完整参考
> 200+ 标准接口文档覆盖用户、内容、AI、支付等全部模块。
## 📚 API 概览
**基础 URL** `https://api.websopy.com/v1`
**认证方式:** Bearer Token
```bash
curl -H "Authorization: Bearer YOUR_API_KEY" \
https://api.websopy.com/v1/user/profile
```
## 📋 端点列表
### 用户管理 `/user`
| 方法 | 端点 | 说明 |
|------|------|------|
| GET | `/user/profile` | 获取当前用户信息 |
| PUT | `/user/profile` | 更新用户信息 |
| GET | `/user/settings` | 获取用户设置 |
| PUT | `/user/settings` | 更新用户设置 |
| POST | `/user/avatar` | 上传头像 |
### 项目管理 `/projects`
| 方法 | 端点 | 说明 |
|------|------|------|
| GET | `/projects` | 列出项目 |
| POST | `/projects` | 创建项目 |
| GET | `/projects/:id` | 获取项目详情 |
| PUT | `/projects/:id` | 更新项目 |
| DELETE | `/projects/:id` | 删除项目 |
| GET | `/projects/:id/members` | 获取项目成员 |
| POST | `/projects/:id/members` | 添加成员 |
### 文件存储 `/storage`
| 方法 | 端点 | 说明 |
|------|------|------|
| GET | `/storage/files` | 列出文件 |
| POST | `/storage/upload` | 上传文件 |
| GET | `/storage/files/:id` | 获取文件信息 |
| DELETE | `/storage/files/:id` | 删除文件 |
| GET | `/storage/files/:id/download` | 下载文件 |
### AI 功能 `/ai`
| 方法 | 端点 | 说明 |
|------|------|------|
| POST | `/ai/chat` | 发送对话请求 |
| POST | `/ai/chat/stream` | 流式对话 |
| GET | `/ai/sessions` | 列出会话 |
| POST | `/ai/sessions` | 创建会话 |
| GET | `/ai/sessions/:id` | 获取会话详情 |
| DELETE | `/ai/sessions/:id` | 删除会话 |
| POST | `/ai/knowledge` | 创建知识库 |
| POST | `/ai/knowledge/:id/documents` | 添加文档 |
### 支付 `/payments`
| 方法 | 端点 | 说明 |
|------|------|------|
| GET | `/payments/orders` | 列出订单 |
| POST | `/payments/orders` | 创建订单 |
| GET | `/payments/orders/:id` | 订单详情 |
| POST | `/payments/checkout` | 创建结算会话 |
| GET | `/payments/subscriptions` | 订阅列表 |
## 🔍 请求与响应
### 请求头
```http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json
Accept: application/json
X-Request-ID: unique-request-id
```
### 分页
```http
GET /projects?page=2&limit=20
```
响应包含分页信息:
```json
{
"data": [...],
"pagination": {
"page": 2,
"limit": 20,
"total": 100,
"total_pages": 5
}
}
```
### 排序
```http
GET /projects?sort=created_at&order=desc
```
### 过滤
```http
GET /projects?status=active&category=ai
```
## 📝 错误处理
### 错误码
| 状态码 | 错误码 | 说明 |
|--------|--------|------|
| 400 | `INVALID_REQUEST` | 请求参数错误 |
| 401 | `UNAUTHORIZED` | 未认证或 Token 无效 |
| 403 | `FORBIDDEN` | 无权限访问 |
| 404 | `NOT_FOUND` | 资源不存在 |
| 429 | `RATE_LIMITED` | 请求过于频繁 |
| 500 | `SERVER_ERROR` | 服务器内部错误 |
### 错误响应格式
```json
{
"error": {
"code": "INVALID_REQUEST",
"message": "参数 'name' 不能为空",
"details": {
"field": "name",
"constraint": "required"
}
}
}
```
## 🔧 使用示例
### JavaScript/TypeScript
```typescript
const response = await fetch('https://api.websopy.com/v1/projects', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
name: '我的项目',
description: '项目描述'
})
})
const data = await response.json()
console.log(data)
```
### Python
```python
import requests
response = requests.post(
'https://api.websopy.com/v1/projects',
headers={
'Authorization': f'Bearer {api_key}',
'Content-Type': 'application/json'
},
json={
'name': '我的项目',
'description': '项目描述'
}
)
data = response.json()
print(data)
```