feat: 更新公告和链接状态接口,增强参数校验,支持跳转链接最大长度为5000字符,添加异步保存完成图片功能,优化接口文档和数据库结构
This commit is contained in:
@@ -6,10 +6,21 @@
|
||||
## 接口说明
|
||||
|
||||
### 1. 获取链接状态(主要接口)
|
||||
|
||||
**推荐格式(路径参数):**
|
||||
```
|
||||
GET /api/link/{codeNo}/status
|
||||
GET /api/link/{code}/status
|
||||
```
|
||||
|
||||
**兼容格式(查询参数,兼容旧版):**
|
||||
```
|
||||
GET /api/link/status?code={code}
|
||||
GET /api/link/status?codeNo={codeNo}
|
||||
GET /api/link/status?linkId={linkId}
|
||||
```
|
||||
|
||||
> 💡 **推荐使用路径参数格式**,因为复制粘贴时不容易丢失参数,更符合 RESTful 规范。查询参数格式保留用于兼容已生成的旧链接。
|
||||
|
||||
**响应示例:**
|
||||
```json
|
||||
{
|
||||
@@ -66,6 +77,7 @@ const LinkPage = () => {
|
||||
const fetchLinkStatus = async () => {
|
||||
try {
|
||||
setLoading(true);
|
||||
// 使用路径参数格式,更不容易丢失链接信息
|
||||
const response = await fetch(`/api/link/${codeNo}/status`);
|
||||
|
||||
if (!response.ok) {
|
||||
@@ -301,6 +313,7 @@ export default {
|
||||
async fetchLinkStatus() {
|
||||
try {
|
||||
this.loading = true;
|
||||
// 使用路径参数格式,更不容易丢失链接信息
|
||||
const response = await fetch(`/api/link/${this.codeNo}/status`);
|
||||
|
||||
if (!response.ok) {
|
||||
@@ -389,10 +402,57 @@ export default router;
|
||||
## 使用流程
|
||||
|
||||
1. **用户访问链接**:`https://你的域名/ABC12345`
|
||||
2. **前端自动请求**:调用 `/api/link/ABC12345/status` 获取链接信息
|
||||
2. **前端自动请求**:调用 `/api/link/ABC12345/status` 获取链接信息(使用路径参数,更不容易丢失)
|
||||
3. **显示相应内容**:根据链接状态显示不同的界面
|
||||
4. **实时更新**:可以定时刷新状态,显示剩余时间等
|
||||
|
||||
## 接口格式说明
|
||||
|
||||
系统同时支持两种访问格式,保证新旧链接都能正常使用:
|
||||
|
||||
### 方式一:路径参数格式(推荐 ⭐)
|
||||
|
||||
```
|
||||
GET /api/link/{code}/status
|
||||
```
|
||||
|
||||
**示例:**
|
||||
```javascript
|
||||
fetch('/api/link/ABC12345/status')
|
||||
```
|
||||
|
||||
**优势:**
|
||||
- ✅ 复制粘贴时不会丢失参数
|
||||
- ✅ 符合 RESTful 设计规范
|
||||
- ✅ URL 结构更清晰
|
||||
- ✅ 浏览器地址栏直接可见完整路径
|
||||
|
||||
### 方式二:查询参数格式(兼容旧版)
|
||||
|
||||
```
|
||||
GET /api/link/status?code={code}
|
||||
GET /api/link/status?codeNo={codeNo}
|
||||
GET /api/link/status?linkId={linkId}
|
||||
```
|
||||
|
||||
**示例:**
|
||||
```javascript
|
||||
fetch('/api/link/status?code=ABC12345')
|
||||
fetch('/api/link/status?codeNo=ABC12345')
|
||||
fetch('/api/link/status?linkId=123')
|
||||
```
|
||||
|
||||
**说明:**
|
||||
- 保留此格式用于兼容已生成的旧链接
|
||||
- 支持 `code`、`codeNo`、`linkId` 三种参数名
|
||||
- `linkId` 和 `code/codeNo` 至少提供一个即可
|
||||
|
||||
### 兼容性保证
|
||||
|
||||
- ✅ 两种格式返回完全相同的数据结构
|
||||
- ✅ 旧链接继续有效,无需修改
|
||||
- ✅ 新生成的链接推荐使用路径参数格式
|
||||
|
||||
## 注意事项
|
||||
|
||||
1. **错误处理**:处理链接不存在、已过期等情况
|
||||
|
||||
Reference in New Issue
Block a user