yl-frontend/api-docs/news-api.txt

196 lines
3.9 KiB
Plaintext
Raw 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.

新闻资讯模块接口文档
================
基础信息
-------
- 基础路径: /api/v1/news
- 请求方式: REST
- 数据格式: JSON
- 认证方式: Bearer Token
数据结构
-------
News 新闻对象:
{
id: number, // 新闻ID
title: string, // 标题
summary: string, // 摘要
content: string, // 内容
image: string, // 封面图片
category: string, // 分类
time: string, // 发布时间
views: number, // 浏览量
source: string, // 来源
tags: string[], // 标签
status: string // 状态(published/draft)
}
NewsCategory 分类对象:
{
value: string, // 分类值
label: string, // 分类名称
count: number // 新闻数量
}
NewsComment 评论对象:
{
id: number, // 评论ID
newsId: number, // 新闻ID
userId: number, // 用户ID
userName: string, // 用户名
content: string, // 评论内容
time: string, // 评论时间
likes: number, // 点赞数
replies?: NewsComment[] // 回复列表
}
API 接口
-------
1. 获取新闻列表
GET /api/v1/news
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
| category | string | 否 | 新闻分类 |
| page | number | 否 | 页码默认1 |
| size | number | 否 | 每页数量默认10 |
| keyword | string | 否 | 搜索关键词 |
响应示例:
{
"code": 200,
"message": "success",
"data": {
"total": 100,
"records": [
{
"id": 1,
"title": "老年人健康管理新政策出台",
"summary": "国家发布新政策,加强老年人健康管理服务...",
"image": "https://example.com/news1.jpg",
"category": "policy",
"time": "2024-03-20 10:30",
"views": 1234,
"source": "健康时报",
"tags": ["政策", "健康", "养老"],
"status": "published"
}
]
}
}
2. 获取新闻详情
GET /api/v1/news/{id}
响应示例:
{
"code": 200,
"message": "success",
"data": {
// 新闻详细信息
}
}
3. 获取新闻分类
GET /api/v1/news/categories
响应示例:
{
"code": 200,
"message": "success",
"data": [
{
"value": "policy",
"label": "政策新闻",
"count": 128
}
]
}
4. 获取热门新闻
GET /api/v1/news/hot
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
| limit | number | 否 | 返回数量默认5 |
5. 更新浏览量
POST /api/v1/news/{id}/view
6. 获取新闻评论
GET /api/v1/news/{id}/comments
响应示例:
{
"code": 200,
"message": "success",
"data": [
{
"id": 1,
"newsId": 1,
"userId": 10001,
"userName": "张三",
"content": "政策很实用",
"time": "2024-03-20 11:00",
"likes": 12,
"replies": []
}
]
}
7. 添加评论
POST /api/v1/news/{id}/comments
请求参数:
{
"content": "评论内容",
"parentId": null // 回复其他评论时设置
}
8. 点赞评论
POST /api/v1/news/comments/{id}/like
9. 获取相关新闻
GET /api/v1/news/{id}/related
请求参数:
| 参数名 | 类型 | 必填 | 说明 |
| limit | number | 否 | 返回数量默认3 |
10. 订阅主题
POST /api/v1/news/subscribe
请求参数:
{
"topics": ["health", "policy"]
}
11. 获取订阅推送
GET /api/v1/news/subscribed
错误码说明
--------
| 错误码 | 说明 |
| 200 | 成功 |
| 400 | 请求参数错误 |
| 401 | 未授权 |
| 403 | 禁止访问 |
| 404 | 资源不存在 |
| 500 | 服务器内部错误 |
注意事项
-------
1. 新闻内容支持富文本格式
2. 图片URL需要进行防盗链处理
3. 评论支持多级回复
4. 缓存策略:
- 新闻列表缓存5分钟
- 新闻详情缓存10分钟
- 热门新闻缓存1小时
- 分类列表缓存1天
5. 访问频率限制:
- 获取列表10次/分钟
- 发表评论2次/分钟
- 点赞操作5次/分钟