照片列表接口

接口说明

获取照片列表。支持分页查询和相册筛选,会过滤私密相册的照片,并对加密相册的照片进行特殊处理。

  • 接口URL: /api/photos/index
  • 请求方法: POST
  • 权限要求: 支持未登录访问,但登录后可查看更多信息

请求参数

参数名 类型 必填 说明 示例值
page_numer number 页码,不传则返回全部数据 1
page_size number 每页条数,不传则返回全部数据 10
album_path string 相册路径 "travel"
album_password string 相册访问密码,访问加密相册时必填 "123456"

响应结构

typescript 复制代码
interface Response {
  code: number;      // 状态码
  message: string;   // 响应消息
  data?: {
    list: Array<{
      photo_id: number;        // 照片ID
      photo_title: string;     // 照片标题
      photo_description: string;// 照片描述
      photo_url: string;       // 照片URL
      photo_thumbnail: string; // 缩略图URL
      photo_date: string;      // 拍摄日期
      photo_album_id: number;  // 所属相册ID
      album_title: string;     // 相册标题
      album_path: string;      // 相册路径
      album_private: number;   // 相册是否私密(0:否, 1:是)
      album_password?: string; // 相册访问密码(加密相册才有)
    }>;
    total: number;            // 总条数
  };
}

响应示例

普通相册照片

json 复制代码
{
  "code": 0,
  "message": "success",
  "data": {
    "list": [
      {
        "photo_id": 1,
        "photo_title": "美丽风景",
        "photo_description": "旅行中拍摄的风景照",
        "photo_url": "https://example.com/photo.jpg",
        "photo_thumbnail": "https://example.com/thumbnail.jpg",
        "photo_date": "2024-01-01",
        "photo_album_id": 1,
        "album_title": "旅行相册",
        "album_path": "travel",
        "album_private": 0
      }
    ],
    "total": 1
  }
}

加密相册照片(密码错误)

json 复制代码
{
  "code": 401,
  "message": "需要密码访问",
  "data": {
    "list": [
      {
        "photo_id": 2,
        "photo_title": "加密照片",
        "photo_description": "此照片需要密码访问",
        "photo_thumbnail": "https://example.com/placeholder.jpg",
        "photo_date": "2024-01-01",
        "photo_album_id": 2,
        "album_title": "私密相册",
        "album_path": "private",
        "album_private": 0,
        "album_password": "******"
      }
    ],
    "total": 1
  }
}

特殊说明

分页机制

  • page_numerpage_size 都不传时,返回全部数据
  • 分页从第1页开始,每页大小由 page_size 决定
  • 返回数据按照照片ID降序排列(最新的照片在前)

访问控制

  • 私密相册的照片会被过滤,不会出现在返回列表中
  • 加密相册的照片需要提供正确的相册密码才能查看原图
  • 未提供密码或密码错误时,加密相册的照片只显示缩略图
  • 登录用户可以查看更多照片信息

错误码说明

错误码 说明 处理建议
0 成功 -
401 需要密码访问 提供正确的相册密码
500 服务器错误 请联系管理员

调用示例

基础查询

typescript 复制代码
const response = await fetch('/api/photos/index', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    page_numer: 1,
    page_size: 10
  })
});

访问加密相册

typescript 复制代码
const response = await fetch('/api/photos/index', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    page_numer: 1,
    page_size: 10,
    album_path: 'private',
    album_password: '123456'
  })
});