超腾开源平台网站模块
网站模块 API
概述
网站模块提供了与内容模块类似的功能,但用于公开访问的网站端。这些接口不需要认证或只需要基本认证,适合前端网站直接调用。
目录
用户接口
网站端用户接口提供用户注册、登录、信息查询等功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/users/me |
GET | 获取当前用户信息 | 是 |
/api/website/users/register |
POST | 用户注册 | 否 |
/api/website/users/login |
POST | 用户登录 | 否 |
/api/website/users/logout |
POST | 用户登出 | 是 |
/api/website/users/update |
POST | 更新用户信息 | 是 |
/api/website/users/change-password |
POST | 修改密码 | 是 |
用户注册
接口地址: POST /api/website/users/register
需要认证: 否
请求体:
{
"username": "newuser",
"password": "password123",
"email": "newuser@example.com",
"nickname": "新用户",
"captcha_key": "key",
"captcha_value": "1234"
}
用户登录
接口地址: POST /api/website/users/login
需要认证: 否
请求体:
{
"username": "admin",
"password": "password123",
"captcha_key": "key",
"captcha_value": "1234"
}
响应示例:
{
"success": true,
"code": 200,
"msg": "登录成功",
"data": {
"access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"token_type": "bearer",
"user": {
"id": "1",
"username": "admin",
"nickname": "管理员",
"email": "admin@example.com"
}
}
}
博客接口
网站端博客接口提供博客的公开访问功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/blogs/detail |
GET | 获取博客详情 | 否 |
/api/website/blogs/list |
GET | 获取博客列表 | 否 |
/api/website/blogs/page |
GET | 获取博客分页 | 否 |
获取博客详情
接口地址: GET /api/website/blogs/detail
需要认证: 否
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | string | 是 | 博客 ID |
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": {
"id": "1",
"title": "我的第一篇博客",
"abstract": "这是博客摘要",
"content": "博客内容...",
"author_name": "张三",
"view_count": 100,
"like_count": 10,
"comment_count": 5,
"create_time": "2026-01-01T00:00:00Z",
"images": [
{
"image_url": "https://example.com/image1.jpg",
"image_type": "content"
}
]
}
}
获取博客列表
接口地址: GET /api/website/blogs/list
需要认证: 否
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | 否 | 标题 |
| keywords | string | 否 | 关键词 |
| author_id | string | 否 | 作者 ID |
| order | string | 否 | 排序字段 |
微博接口
网站端微博接口提供微博的公开访问功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/microblogs/detail |
GET | 获取微博详情 | 否 |
/api/website/microblogs/list |
GET | 获取微博列表 | 否 |
/api/website/microblogs/page |
GET | 获取微博分页 | 否 |
反馈接口
网站端反馈接口提供反馈提交功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/feedbacks/create |
POST | 创建反馈 | 否 |
创建反馈
接口地址: POST /api/website/feedbacks/create
需要认证: 否
请求体:
{
"title": "功能建议",
"content": "建议增加XXX功能",
"contact_info": "user@example.com"
}
留言接口
网站端留言接口提供留言的公开访问和提交功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/guestbooks/public/list |
GET | 获取公开留言列表 | 否 |
/api/website/guestbooks/public/page |
GET | 获取公开留言分页 | 否 |
/api/website/guestbooks/anonymous/create |
POST | 匿名创建留言 | 否 |
匿名创建留言
接口地址: POST /api/website/guestbooks/anonymous/create
需要认证: 否
请求体:
{
"user_name": "访客",
"content": "网站做得很好!",
"contact_info": "guest@example.com"
}
日志接口
网站端日志接口提供日志查询功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/logs/detail |
GET | 获取日志详情 | 否 |
/api/website/logs/list |
GET | 获取日志列表 | 否 |
/api/website/logs/page |
GET | 获取日志分页 | 否 |
商品接口
网站端商品接口提供商品的公开访问功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/items/detail |
GET | 获取商品详情 | 否 |
/api/website/items/list |
GET | 获取商品列表 | 否 |
/api/website/items/page |
GET | 获取商品分页 | 否 |
获取商品详情
接口地址: GET /api/website/items/detail
需要认证: 否
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | string | 是 | 商品 ID |
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": {
"id": "1",
"name": "商品名称",
"description": "商品描述",
"price": 99.99,
"discount_price": 89.99,
"thumbnail": "https://example.com/thumb.jpg",
"images": [
"https://example.com/image1.jpg",
"https://example.com/image2.jpg"
],
"stock": 100,
"category": "电子产品",
"status": "available"
}
}
注册接口
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/register |
POST | 用户注册 | 否 |
站点地图
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/sitemap |
GET | 获取站点地图 | 否 |
获取站点地图
接口地址: GET /api/website/sitemap
需要认证: 否
响应示例:
{
"success": true,
"code": 200,
"msg": "操作成功",
"data": [
{
"url": "https://example.com/blog/article-1",
"last_modified": "2026-01-01T00:00:00Z",
"change_frequency": "weekly",
"priority": 0.8
},
{
"url": "https://example.com/wiki/document-1",
"last_modified": "2026-01-01T00:00:00Z",
"change_frequency": "monthly",
"priority": 0.6
}
]
}
Wiki 接口
网站端 Wiki 接口提供 Wiki 文档的公开访问功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/xwiki/detail |
GET | 获取 Wiki 详情 | 否 |
/api/website/xwiki/list |
GET | 获取 Wiki 列表 | 否 |
/api/website/xwiki/page |
GET | 获取 Wiki 分页 | 否 |
域名白名单
网站端域名白名单接口提供域名白名单的公开访问功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/domain-whitelists/list |
GET | 获取域名白名单列表 | 否 |
/api/website/domain-whitelists/page |
GET | 获取域名白名单分页 | 否 |
收藏接口
网站端收藏接口提供收藏功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/favorites/add |
POST | 添加收藏 | 是 |
/api/website/favorites/remove |
POST | 取消收藏 | 是 |
/api/website/favorites/check |
GET | 检查是否已收藏 | 是 |
检查是否已收藏
接口地址: GET /api/website/favorites/check
需要认证: 是
请求参数:
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| item_id | string | 是 | 商品 ID |
购物车接口
网站端购物车接口提供购物车功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/carts/add |
POST | 添加到购物车 | 是 |
/api/website/carts/list |
GET | 获取购物车 | 是 |
评论接口
网站端评论接口提供评论查询功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/comments/list |
GET | 获取评论列表 | 否 |
/api/website/comments/page |
GET | 获取评论分页 | 否 |
远程主机
网站端远程主机接口提供远程主机查询功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/remote_host/detail |
GET | 获取远程主机详情 | 是 |
/api/website/remote_host/list |
GET | 获取远程主机列表 | 是 |
/api/website/remote_host/page |
GET | 获取远程主机分页 | 是 |
邮件订阅
网站端邮件订阅接口提供邮件订阅功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/email-subscriptions/create |
POST | 创建邮件订阅 | 否 |
创建邮件订阅
接口地址: POST /api/website/email-subscriptions/create
需要认证: 否
请求体:
{
"email": "user@example.com",
"subscription_type": "all"
}
友情链接
网站端友情链接接口提供友情链接查询功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/links/list |
GET | 获取友情链接列表 | 否 |
/api/website/links/page |
GET | 获取友情链接分页 | 否 |
产品文档
网站端产品文档接口提供产品文档的公开访问功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/products/detail |
GET | 获取产品详情 | 否 |
/api/website/products/list |
GET | 获取产品列表 | 否 |
/api/website/products/page |
GET | 获取产品分页 | 否 |
统计接口
网站端统计接口提供统计数据收集和查询功能。
| 接口地址 | 方法 | 说明 | 认证 |
|---|---|---|---|
/api/website/analytics/collect |
POST | 收集访问数据 | 否 |
/api/website/analytics/stats |
GET | 获取统计数据 | 是 |
收集访问数据
接口地址: POST /api/website/analytics/collect
需要认证: 否
请求体:
{
"url": "/blog/article-1",
"referrer": "https://google.com",
"user_agent": "Mozilla/5.0...",
"device_type": "desktop"
}
使用示例
Python 示例
import requests
base_url = 'http://localhost:8000/api/website'
# 用户登录(无需认证)
response = requests.post(
f'{base_url}/users/login',
json={
'username': 'admin',
'password': 'password123',
'captcha_key': 'key',
'captcha_value': '1234'
}
)
print(response.json())
# 获取博客列表(无需认证)
response = requests.get(
f'{base_url}/blogs/list',
params={'order': 'create_time_desc'}
)
print(response.json())
# 获取商品详情(无需认证)
response = requests.get(
f'{base_url}/items/detail',
params={'id': '1'}
)
print(response.json())
# 创建反馈(无需认证)
response = requests.post(
f'{base_url}/feedbacks/create',
json={
'title': '功能建议',
'content': '建议增加XXX功能',
'contact_info': 'user@example.com'
}
)
print(response.json())
# 收集访问数据(无需认证)
response = requests.post(
f'{base_url}/analytics/collect',
json={
'url': '/home',
'referrer': '',
'device_type': 'desktop'
}
)
print(response.json())
JavaScript 示例
// 用户登录
async function loginUser(username, password, captchaKey, captchaValue) {
const response = await fetch(
"http://localhost:8000/api/website/users/login",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
username,
password,
captcha_key: captchaKey,
captcha_value: captchaValue,
}),
}
);
return await response.json();
}
// 获取博客列表
async function getBlogs(filters = {}) {
const params = new URLSearchParams(filters);
const response = await fetch(
`http://localhost:8000/api/website/blogs/list?${params}`
);
return await response.json();
}
// 获取商品详情
async function getItemDetail(itemId) {
const response = await fetch(
`http://localhost:8000/api/website/items/detail?id=${itemId}`
);
return await response.json();
}
// 创建反馈
async function createFeedback(feedbackData) {
const response = await fetch(
"http://localhost:8000/api/website/feedbacks/create",
{
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(feedbackData),
}
);
return await response.json();
}
// 收集访问数据
function collectPageView(url, referrer, deviceType) {
fetch("http://localhost:8000/api/website/analytics/collect", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
url,
referrer,
device_type: deviceType,
}),
});
}
// 使用示例
loginUser("admin", "password", "key", "1234").then(console.log);
getBlogs({ order: "create_time_desc" }).then(console.log);
注意事项
- 无需认证: 网站端大部分接口无需认证即可访问,但登录后可以获得更多功能。
- 公开访问: 只返回已发布且公开的内容,未发布的内容不会显示。
- 数据限制: 列表接口返回的数据量有限制,大量数据建议使用分页。
- 统计收集: 统计数据收集使用异步方式,不会阻塞页面加载。
- 验证码: 登录和注册接口需要先调用验证码接口获取验证码。
- 敏感信息: 网站端接口不会返回敏感信息(如密码、私钥等)。