本项目提供一个高效的必应壁纸API服务,支持多区域、多分辨率、缓存、JSON与图片直链等多种用法,完全用Go实现,遵循最佳实践。
go run main.go
服务默认监听 :9000 端口。
/*(所有路径均可)| 参数名 | 说明 | 可选值/示例 |
|---|---|---|
| format | 响应格式。json 返回壁纸信息,image 重定向到图片,cache 返回缓存图片 | json(默认)、image、cache |
| index | 壁纸索引,0为今日,1为昨日,最大7,或random | 0、1、2...7、random |
| region | 区域,或random | zh-CN(默认)、en-US、ja-JP、en-AU、en-GB、de-DE等,或random |
| resolution | 分辨率 | 1920x1080(默认)、UHD、1366x768等,见下表 |
GET http://127.0.0.1:9000/?resolution=UHD&format=json&index=0®ion=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"
}
GET http://127.0.0.1:9000/?resolution=UHD&format=image&index=0®ion=zh-CN
浏览器将直接跳转到图片地址。
GET http://127.0.0.1:9000/?resolution=UHD&format=cache&index=0®ion=zh-CN
直接返回图片二进制数据,并带有如下响应头:
X-Cache-Hit: true/false 是否命中缓存X-Bing-Region、X-Bing-Index、X-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!