API 参考文档
dbug.wiki 提供 RESTful API,支持 AI 编码助手和第三方应用直接调用编程错误知识库。 所有 API 基于 HTTPS,返回 JSON 格式数据。
快速开始
基础 URL
https://api.dbug.wiki/api/v1
认证
Authorization: Bearer <token>
GET
/api/v1/bugs获取 Bug 列表(支持分页、筛选、排序)
参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| page | int | 1 | 页码 |
| page_size | int | 20 | 每页数量 |
| fix_type | string | - | 修复类型筛选 |
| severity | string | - | 严重等级 (high/medium/low) |
| status | string | - | 状态 (fixed/open/attention/archived) |
| search | string | - | 搜索关键词 |
| sort_by | string | updated_at | 排序字段 |
| sort_order | string | desc | 排序方向 (asc/desc) |
示例请求
curl -X GET "https://api.dbug.wiki/api/v1/bugs?page=1&page_size=10&fix_type=端口冲突"
响应示例
{
"items": [
{
"id": "uuid",
"bug_id": "BUG-003",
"title": "端口冲突导致服务启动失败",
"slug": "bug-003",
"fix_type": "端口冲突解决",
"severity": "high",
"status": "fixed",
"error_signature": "EADDRINUSE.*port.*already",
"detect_command": "netstat -ano | findstr :PORT",
"fix_command": "taskkill /PID <PID> /F",
"root_cause": "端口被其他进程占用",
"symptoms": "服务无法启动,端口占用错误",
"solution": "释放端口或切换端口",
"confidence": 0.90,
"view_count": 128,
"search_count": 45
}
],
"total": 1,
"page": 1,
"page_size": 10,
"total_pages": 1
}GET
/api/v1/bugs/{id}获取单个 Bug 详情
参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| id | UUID | - | Bug UUID |
示例请求
curl -X GET "https://api.dbug.wiki/api/v1/bugs/550e8400-e29b-41d4-a716-446655440000"
响应示例
{
"id": "550e8400...",
"bug_id": "BUG-003",
"title": "端口冲突导致服务启动失败",
...all fields
}GET
/api/v1/bugs/slug/{slug}通过 slug 获取 Bug
参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| slug | string | - | Bug slug,如 bug-003 |
示例请求
curl -X GET "https://api.dbug.wiki/api/v1/bugs/slug/bug-003"
响应示例
{ ...Bug 详情 }POST
/api/v1/bugs/search高级搜索 Bug(支持错误签名匹配)
参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| q | string | - | 搜索关键词/错误日志片段 |
| fix_type | string | - | 修复类型筛选 |
| severity | string | - | 严重等级筛选 |
| status | string | - | 状态筛选 |
| page | int | 1 | 页码 |
| page_size | int | 20 | 每页数量 |
示例请求
curl -X POST "https://api.dbug.wiki/api/v1/bugs/search" \
-H "Content-Type: application/json" \
-d '{"q": "EADDRINUSE port 3000", "severity": "high"}'响应示例
{ "items": [...], "total": 5, "page": 1, "page_size": 20, "total_pages": 1 }GET
/api/v1/patterns获取修复模式列表
参数
| 参数 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| category | string | - | 分类筛选 |
| status | string | active | 状态筛选 |
示例请求
curl -X GET "https://api.dbug.wiki/api/v1/patterns?category=frontend"
响应示例
{
"items": [
{
"id": "uuid",
"pattern_id": "A",
"name": "隐藏 → 禁用",
"slug": "hide-to-disable",
"category": "frontend",
"description": "将条件不满足时隐藏元素改为禁用状态并提示",
"before_code": "v-if=\"condition\"",
"after_code": "v-if=\"canAlways\" :disabled=\"!condition\"",
"confidence": 0.95,
"status": "active"
}
],
"total": 10
}GET
/api/v1/patterns/{id}获取单个模式详情
示例请求
curl -X GET "https://api.dbug.wiki/api/v1/patterns/A"
响应示例
{ ...Pattern 详情 }POST
/api/v1/auth/register用户注册
请求体
{
"username": "string",
"email": "user@example.com",
"password": "string(min8)"
}示例请求
curl -X POST "https://api.dbug.wiki/api/v1/auth/register" \
-H "Content-Type: application/json" \
-d '{"username":"dev","email":"dev@example.com","password":"Dev123!@#"}'响应示例
{
"access_token": "eyJ...",
"refresh_token": "eyJ...",
"token_type": "bearer",
"expires_in": 7200,
"user": { "id": "...", "username": "dev", "email": "...", "role": "viewer" }
}POST
/api/v1/auth/login用户登录
请求体
{ "username": "string", "password": "string" }示例请求
curl -X POST "https://api.dbug.wiki/api/v1/auth/login" \
-H "Content-Type: application/json" \
-d '{"username":"admin","password":"admin123456"}'响应示例
{ "access_token": "...", "refresh_token": "...", "user": {...} }POST
/api/v1/ai/chatAI 对话
请求体
{
"message": "string",
"model_provider": "bailian|deepseek|openai|local",
"conversation_id": "uuid(optional)",
"stream": false
}示例请求
curl -X POST "https://api.dbug.wiki/api/v1/ai/chat" \
-H "Content-Type: application/json" \
-d '{"message":"如何解决端口冲突?","model_provider":"bailian"}'响应示例
{
"success": true,
"provider": "bailian",
"model": "qwen-plus",
"content": "端口冲突的解决方案...",
"conversation_id": "uuid"
}GET
/api/v1/stats需认证获取全局统计数据(需管理员权限)
示例请求
curl -X GET "https://api.dbug.wiki/api/v1/stats" \ -H "Authorization: Bearer <token>"
响应示例
{
"total_bugs": 41,
"total_patterns": 10,
"total_users": 128,
"total_searches": 1520,
"bugs_by_severity": { "high": 12, "medium": 20, "low": 9 },
"bugs_by_status": { "fixed": 31, "open": 8, "attention": 2 },
"bugs_by_fix_type": { "端口冲突": 5, "空值守卫": 4, ... },
"top_searches": [{"query": "EADDRINUSE", "count": 156}]
}错误码
| 状态码 | 说明 | 处理建议 |
|---|---|---|
| 200 | 成功 | 正常处理 |
| 201 | 创建成功 | 资源已创建 |
| 400 | 请求参数错误 | 检查请求参数格式 |
| 401 | 未认证 | 提供有效的 Authorization 头 |
| 403 | 权限不足 | 当前角色无此操作权限 |
| 404 | 资源不存在 | 检查 ID 或 slug |
| 429 | 请求频率超限 | 等待后重试 |
| 500 | 服务器错误 | 联系技术支持 |