快速开始
<img
src="https://zhanweifu.com/image/640x360.svg?style=none&text=商品图片&seed=catalog&v=2"
alt="商品图片占位图"
>
const response = await fetch(
"https://zhanweifu.com/data/products.json?count=8&seed=catalog&v=2"
);
const { rows } = await response.json();
资源路由
| 资源 | 路由 | 输出 | 范围 |
| 占位图片 | /image/{width}x{height}.svg | SVG | 宽高 16 至 2400 |
| 头像 | /avatar/{size}.svg | SVG | 尺寸 16 至 512 |
| 模拟数据 | /data/{scenario}.json | JSON | 1 至 100 条 |
| 数据表 | /table/{scenario}.csv | CSV | 1 至 100 条 |
| 数据表 | /table/{scenario}.html | HTML | 1 至 100 条 |
参数说明
| 参数 | 适用资源 | 默认值 | 规则 |
style | 图片、头像 | paper | paper、grid、mono、none |
text | 图片 | 空 | 最多 80 个 Unicode 字符 |
seed | 全部 | 规范化资源路径 | 相同种子生成相同内容;random 生成随机种子 |
bg | 图片、头像 | 跟随风格 | 不透明六位十六进制颜色,如 #f4f1ea |
radius | 头像 | 16 | 外框圆角百分比,整数 0 至 50 |
count | JSON、CSV、HTML | 20 | 整数 1 至 100 |
v | 全部 | 可省略 | 生成器当前写入 2;服务端始终使用当前生成版本建立缓存键 |
风格与数据场景
图片风格
| 名称 | 用途 |
paper | 明亮纸张与编辑感构图 |
grid | 深色网格与模块化构图 |
mono | 中性单色构图 |
none | 纯色背景,不生成装饰图案 |
模拟数据场景
JSON 响应包含 scenario、seed、count、columns 和 rows,CSV 与 HTML 使用相同字段顺序。
| 场景 | 字段 |
users | id、name、email、role、avatar |
articles | id、title、author、category、publishedAt |
products | id、name、category、price、stock、image |
dashboard | id、metric、value、change、period |
缓存与跨域
- 固定种子
- 相同路由、参数和种子会生成相同内容,并返回
Cache-Control: public, max-age=31536000, immutable。
- 随机种子
seed=random 返回 302,重定向到一个明确种子的 URL;重定向响应不缓存。
- 跨域读取
- JSON 与 CSV 响应包含
Access-Control-Allow-Origin: *。SVG 和 HTML 表格不声明跨域读取权限。
- 请求方法
- 服务只接受
GET;所有成功资源均包含 X-Content-Type-Options: nosniff。
错误响应
| 状态码 | 情况 |
400 | 路由、格式或参数无效 |
405 | 使用了 GET 以外的请求方法 |
500 | 服务发生意外错误 |
{
"error": {
"code": "INVALID_DIMENSION",
"message": "Width must be an integer from 16 to 2400."
}
}
错误响应使用 Cache-Control: no-store,并允许跨域读取。
使用许可
由本服务生成的图片和数据可免费用于开发、测试和演示,无需署名。源代码采用 MIT License。