# ZJPB API 文档 ## 概述 ZJPB 网站管理 API,通过 API Key 进行认证,可用于外部工具(如 OpenClaw)调用。 ## 基础信息 - **Base URL**: `http://175.178.72.171` - **认证方式**: Header (`X-API-Key`) - **数据格式**: JSON ## 认证 所有 API 请求需要在 Header 中携带 API Key: ``` X-API-Key: your-api-key-here ``` 获取 API Key:进入后台管理 → API密钥 → 创建新密钥 --- ## API 接口 ### 1. 获取网站列表 ```http GET /api/key/sites ``` **权限**: `site:read` **响应示例**: ```json { "success": true, "sites": [ { "id": 1, "code": "12345678", "name": "网站名称", "url": "https://example.com", "slug": "example", "logo": "/uploads/logo.png", "short_desc": "简短描述", "description": "详细介绍", "features": "主要功能", "news_keywords": "关键词", "is_active": true, "is_recommended": false, "view_count": 100, "tags": ["标签1", "标签2"], "created_at": "2026-03-23 10:00:00" } ] } ``` --- ### 2. 创建网站 ```http POST /api/key/sites ``` **权限**: `site:write` **请求体**: ```json { "name": "网站名称", "url": "https://example.com", "slug": "example", "logo": "/uploads/logo.png", "short_desc": "简短描述", "description": "详细介绍", "features": "主要功能", "news_keywords": "关键词", "tags": ["标签1", "标签2"], "is_active": true, "is_recommended": false, "sort_order": 0 } ``` **字段说明**: | 字段 | 必填 | 说明 | |------|------|------| | name | 是 | 网站名称 | | url | 是 | 网站 URL | | slug | 否 | URL别名,用于 SEO | | logo | 否 | Logo 图片路径 | | short_desc | 否 | 简短描述 | | description | 否 | 详细介绍 | | features | 否 | 主要功能 | | news_keywords | 否 | 新闻关键词 | | tags | 否 | 标签数组 | | is_active | 否 | 是否启用,默认 true | | is_recommended | 否 | 是否推荐,默认 false | | sort_order | 否 | 排序权重,默认 0 | **响应示例**: ```json { "success": true, "site": { "id": 2, "code": "87654321", "name": "网站名称", "url": "https://example.com", "slug": "example" } } ``` --- ### 3. 获取单个网站 ```http GET /api/key/sites/{code} ``` **权限**: `site:read` **参数**: - `code`: 网站编码(8位数字) **响应示例**: ```json { "success": true, "site": { "id": 1, "code": "12345678", "name": "网站名称", "url": "https://example.com", ... } } ``` --- ### 4. 更新网站 ```http PUT /api/key/sites/{code} ``` **权限**: `site:write` **参数**: - `code`: 网站编码(8位数字) **请求体**: 同创建网站,可只传需要更新的字段 **响应示例**: ```json { "success": true, "site": { "id": 1, "code": "12345678", "name": "新名称", ... } } ``` --- ### 5. 删除网站 ```http DELETE /api/key/sites/{code} ``` **权限**: `site:write` **参数**: - `code`: 网站编码(8位数字) **响应示例**: ```json { "success": true, "message": "网站已删除" } ``` --- ## 错误响应 ```json { "success": false, "message": "错误信息" } ``` **状态码**: - `200`: 成功 - `400`: 请求参数错误 - `401`: 认证失败(无效的 API Key) - `403`: 权限不足 - `404`: 资源不存在 - `500`: 服务器错误 --- ## 使用示例 ### cURL ```bash # 获取网站列表 curl -X GET http://175.178.72.171/api/key/sites \ -H "X-API-Key: your-api-key" # 创建网站 curl -X POST http://175.178.72.171/api/key/sites \ -H "Content-Type: application/json" \ -H "X-API-Key: your-api-key" \ -d '{ "name": "示例网站", "url": "https://example.com", "short_desc": "这是一个示例网站", "tags": ["科技", "开源"] }' # 更新网站 curl -X PUT http://175.178.72.171/api/key/sites/12345678 \ -H "Content-Type: application/json" \ -H "X-API-Key: your-api-key" \ -d '{"name": "新名称"}' # 删除网站 curl -X DELETE http://175.178.72.171/api/key/sites/12345678 \ -H "X-API-Key: your-api-key" ``` ### Python ```python import requests API_KEY = "your-api-key" BASE_URL = "http://175.178.72.171" headers = {"X-API-Key": API_KEY} # 获取网站列表 response = requests.get(f"{BASE_URL}/api/key/sites", headers=headers) print(response.json()) # 创建网站 data = { "name": "示例网站", "url": "https://example.com", "short_desc": "这是一个示例网站", "tags": ["科技", "开源"] } response = requests.post(f"{BASE_URL}/api/key/sites", json=data, headers=headers) print(response.json()) ``` ### JavaScript ```javascript const API_KEY = "your-api-key"; const BASE_URL = "http://175.178.72.171"; const headers = { "X-API-Key": API_KEY }; // 获取网站列表 fetch(`${BASE_URL}/api/key/sites`, { headers }) .then(res => res.json()) .then(data => console.log(data)); // 创建网站 fetch(`${BASE_URL}/api/key/sites`, { method: "POST", headers: { "Content-Type": "application/json", "X-API-Key": API_KEY }, body: JSON.stringify({ name: "示例网站", url: "https://example.com", short_desc: "这是一个示例网站" }) }) .then(res => res.json()) .then(data => console.log(data)); ``` --- ## OpenClaw 集成 在 OpenClaw 中配置 API: 1. **Base URL**: `http://175.178.72.171` 2. **Auth Header**: `X-API-Key` 3. **Auth Value**: 你创建的 API Key 创建网站的 prompt 示例: ``` 你是一个网站发布助手。请根据用户提供的网站信息,调用 ZJPB API 创建网站。 网站信息: - 名称:{name} - URL:{url} - 描述:{description} 请调用 POST /api/key/sites 接口创建网站。 ``` --- **最后更新**: 2026-03-23