BingWallpaper · API

接口文档

所有 /api/* 端点均公开访问,无需鉴权、无需密钥。返回 JSON 格式,UTF-8 编码;Bing 数据走 1 小时内存缓存,按 IP 限流 200 次/分钟。

v1.0 · 公开 PHP 8.2 · 无框架 内存缓存 · 1 小时 归档 3851 天 JSON · UTF-8

Bing 壁纸

代理 Bing 官方 HPImageArchive.aspx 的真实数据,带 1 小时内存缓存(过期后由下次请求触发刷新)。

GET /api/bing/today
今日 + 历史 7 天壁纸数据(1080p URL)

从 Bing 官方拉取 8 张壁纸(今日 + 倒序 7 天),URL 默认带 w=1920&h=1080,适合页面瀑布流浏览。

响应示例
{
  "message": "success",
  "code": 200,
  "data": [
    {
      "url": "https://www.bing.com/th?id=OHR.LavenderRows_ZH-CN..._UHD.jpg&...&w=1920&h=1080...",
      "date": "20260704",
      "title": "紫色花海",
      "location": "瓦朗索勒高原的薰衣草行,普罗旺斯,法国 (© ...)"
    }
  ]
}
字段说明
  • url · 1080p (w=1920&h=1080) Bing CDN 地址,含 _UHD.jpg 后缀说明源是 4K
  • date · YYYYMMDD 格式,Bing 当日 8 位日期
  • title · 中文化标题
  • location · 拍摄地 + 版权归属(括号内)
GET /api/bing/today-4k
今日 + 历史 7 天壁纸数据(4K URL)

同上,但 URL 参数改写为 w=3840&h=2160,Bing CDN 返回真 4K JPG(实测约 1.5 MB/张),适合下载或外部消费方。

差异
  • URL 中 w=1920 → 3840h=1080 → 2160
  • /api/bing/today 共享同一份缓存
  • 单张约 1.5 MB,8 张全加载约 12 MB,注意带宽
  • 站点前端只在「大图查看」和「下载」时用 4K,列表展示一律 1080p
GET /api/bing/image/:resolution
单图重定向(兼容旧版用法)

传入分辨率 + Bing 图床 ID,302 重定向到 Bing CDN 对应尺寸的图。宽高限定 320–3840 / 240–2160,ID 字符集受限。

Query 参数
  • id · Bing 图床 id,例如 OHR.LavenderRows_ZH-CN0676810895_UHD.jpg
示例
curl -L "http://localhost:2665/api/bing/image/1920x1080?id=OHR.LavenderRows_ZH-CN0676810895_UHD.jpg"

历史壁纸归档

数据来自 bingimages 数据集(合并 niumoo 与 Zhu-junwei 两个仓库),覆盖 2016-03-05 至今共 3851 天、无日期缺口。 由后端只读打开 SQLite 提供,支持关键词搜索、年份筛选与分页。数据目录可用 BINGIMAGES_DIR 配置。

GET /api/archive/stats
归档统计

总量、日期范围与每年条数。前端用它渲染页头与年份下拉。

响应示例
{
  "message": "success",
  "code": 200,
  "data": {
    "total": 3851,
    "min_date": "2016-03-05",
    "max_date": "2026-09-19",
    "by_year": [ { "year": 2016, "count": 302 } ]
  }
}
GET /api/archive/wallpapers
分页 + 搜索 + 年份筛选

按日期倒序返回。关键词在 title / title_en / copyright / copyright_en / date 五个字段上匹配(LIKE 通配符已转义)。

Query 参数
  • page · 页码,从 1 起(默认 1)
  • size · 每页条数,1–100(默认 24)
  • keyword · 关键词,最长 100 字符;日期用前缀匹配,搜 2024-10 能命中整个 10 月
  • year · 年份,2016 起
响应示例
{
  "message": "success",
  "code": 200,
  "data": {
    "total": 3851, "page": 1, "size": 24, "has_more": true,
    "items": [{
      "date": "2026-09-19",
      "title": "穿越山口腹地",
      "title_en": "Winnats Pass, Peak District National Park, England",
      "copyright": "温纳茨山口,峰区国家公园,英格兰 (© Daniel_Kay/Getty Images)",
      "url": "https://cn.bing.com/th?id=...&w=1920&h=1080",
      "url_4k": "https://cn.bing.com/th?id=...&w=3840&h=2160",
      "region": "zh-cn",
      "sources": ["zhujunwei"]
    }]
  }
}
关于 url_4k
  • 只有 cn.bing.com 的图可按参数升到 4K,此时 url_4k 有值
  • cdn.bimg.cc / bing.com 的历史图 Bing 侧没有 4K 版本(实测 404),url_4k 为 null
  • 这个判断在服务端算好,消费方不需要自己解析 URL
越界入参
  • 非正整数或超出范围一律 400,不做静默夹取
  • 数据集未就绪时返回 503 {"error":"壁纸数据集未就绪"}