[源码]基于 Go 语言与 Netlify Functions 的随机图片 API

随机图片 API

基于 Netlify Functions 的随机图片 API 服务,使用 Go 语言实现。

Demo

API 地址:https://api.acgurl.link

JSON 样例:https://api.acgurl.link/img?type=ysh&json=true

Github

rangeImage

功能特点

  • 支持多种图片类型(原神、星穹铁道、必应壁纸)
  • 支持特定类型图片的样式转换(webp、jpg、png)
  • 支持 JSON 和重定向两种返回方式
  • 内置多级缓存机制
  • 自动请求限流保护
  • 完整的健康检查
  • 支持跨域访问

API 使用

图片重定向

1
GET /img?type=ysh

JSON 响应

1
GET /img?type=ysh&json=true

支持的类型参数

  • ysh: 原神横屏
  • yss: 原神竖屏
  • xqh: 星穹横屏
  • xqs: 星穹竖屏

请求参数说明

style参数支持情况

style参数仅在以下图片类型下可用:

  • ysh (原神横屏)
  • yss (原神竖屏)
  • xqh (星穹横屏)
  • xqs (星穹竖屏)

注意:

  • 必应壁纸(bing)不支持样式转换
  • style参数值将直接附加到图片URL中,格式为:原始URL@参数值
  • 建议参考B站图片处理规则使用合适的参数值

开发部署

  1. 安装依赖:
1
go mod download
  1. 本地构建:
1
go build -o functions/rangeImage ./functions/rangeImage.go
  1. 部署到 Netlify:
1
git push

本地开发

  1. 复制环境变量示例文件:
1
cp .env.example .env
  1. 修改 .env 文件中的 MongoDB 连接信息

  2. 本地测试:

1
go run functions/rangeImage.go
  1. 环境要求:
  • Go 1.19+
  • MongoDB 4.0+
  • Netlify CLI (可选)

健康检查