logo
2
1
Login

Bing Wallpaper API (Go实现)

本项目提供一个高效的必应壁纸API服务,支持多区域、多分辨率、缓存、JSON与图片直链等多种用法,完全用Go实现,遵循最佳实践。

启动方式

go run main.go

服务默认监听 :9000 端口。


API 说明

  • 地址/*(所有路径均可)
  • 方法:GET

支持参数

参数名说明可选值/示例
format响应格式。json 返回壁纸信息,image 重定向到图片,cache 返回缓存图片json(默认)、imagecache
index壁纸索引,0为今日,1为昨日,最大7,或random0、1、2...7、random
region区域,或randomzh-CN(默认)、en-USja-JPen-AUen-GBde-DE等,或random
resolution分辨率1920x1080(默认)、UHD1366x768等,见下表

可选分辨率

  • UHD
  • 1920x1200
  • 1920x1080
  • 1366x768
  • 1280x768
  • 1024x768
  • 800x600
  • 800x480
  • 768x1280 (竖屏)
  • 720x1280 (竖屏)
  • 640x480
  • 480x800 (竖屏)
  • 400x240
  • 320x240
  • 240x320 (竖屏)

响应示例

1. 获取壁纸信息(JSON)

GET http://127.0.0.1:9000/?resolution=UHD&format=json&index=0&region=zh-CN

返回:

{ "start_date": "20240803", "end_date": "20240804", "url": "https://www.bing.com/th?id=OHR.ImpalaOxpecker_ZH-CN9652434873_UHD.jpg", "copyright": "黑斑羚和红嘴牛椋鸟,南非 (© Matrishva Vyas/Getty Images)", "copyright_link": "https://www.bing.com/search?q=%E5%8F%8B%E8%B0%8A%E6%97%A5&form=hpcapt&mkt=zh-cn" }

2. 获取壁纸图片(重定向)

GET http://127.0.0.1:9000/?resolution=UHD&format=image&index=0&region=zh-CN

浏览器将直接跳转到图片地址。

3. 获取缓存图片

GET http://127.0.0.1:9000/?resolution=UHD&format=cache&index=0&region=zh-CN

直接返回图片二进制数据,并带有如下响应头:

  • X-Cache-Hit: true/false 是否命中缓存
  • X-Bing-RegionX-Bing-IndexX-Bing-Resolution 请求参数回显

响应头说明

  • X-Cache-Hit:仅format=cache时出现,true为命中缓存,false为未命中
  • X-Bing-Region:本次请求的region参数
  • X-Bing-Index:本次请求的index参数
  • X-Bing-Resolution:本次请求的resolution参数

项目结构

. ├── main.go # 入口 ├── handler/wallpaper.go # 路由与参数处理 ├── service/bing.go # 必应API请求与数据组装 ├── model/wallpaper.go # 数据结构 ├── cache/cache.go # 缓存实现 ├── go.mod/go.sum # 依赖

致谢

本项目参考 TimothyYe/bing-wallpaper 项目,感谢其开源贡献。


其他

如需自定义或扩展功能,欢迎提issue或PR!

About

No description, topics, or website provided.
200.00 KiB
2 forks1 stars1 branches4 TagREADMEApache-2.0 license
Language
Go37.3%
License37.1%
Markdown22%
Dockerfile3.7%