跳到生成器

API / OPENAPI

API 文档

EVA标题生成器提供 HTTP 接口,供程序生成 PNG 或 WebP 封面。本页只说明鉴权、端点与示例入口,完整 OpenAPI 另行提供。
01

鉴权

程序调用使用 Bearer 令牌;公开网页导出会走人机验证。请把令牌放在环境变量里,不要把真实密钥写进页面或示例。

02

端点

GET https://eva.dashen.wang/api/v1/stats · GET https://eva.dashen.wang/api/v1/meta · POST https://eva.dashen.wang/api/v1/covers · POST https://eva.dashen.wang/api/v1/exports

03

示例

OpenAPI: https://eva.dashen.wang/api/v1/openapi.json

curl -sS https://eva.dashen.wang/api/v1/stats
curl -sS -H "Authorization: Bearer $EVA_API_TOKEN" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: demo-001" \
  -d '{"formatId":"article","themeId":"mono","output":"webp","quality":80,"content":{"title":"标题"}}' \
  https://eva.dashen.wang/api/v1/covers -o cover.webp
const res = await fetch('https://eva.dashen.wang/api/v1/covers', {
  method: 'POST',
  headers: {
    Authorization: 'Bearer ' + process.env.EVA_API_TOKEN,
    'Content-Type': 'application/json',
    'Idempotency-Key': crypto.randomUUID(),
  },
  body: JSON.stringify({
    formatId: 'article',
    themeId: 'mono',
    output: 'webp',
    quality: 80,
    content: { title: '标题', subtitle: '副标题' },
  }),
});
const blob = await res.blob();
$ch = curl_init('https://eva.dashen.wang/api/v1/covers');
curl_setopt_array($ch, [
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    'Authorization: Bearer ' . getenv('EVA_API_TOKEN'),
    'Content-Type: application/json',
    'Idempotency-Key: wp-' . wp_generate_uuid4(),
  ],
  CURLOPT_POSTFIELDS => wp_json_encode([
    'formatId' => 'article',
    'themeId' => 'mono',
    'output' => 'webp',
    'quality' => 80,
    'content' => ['title' => get_the_title($post)],
  ]),
  CURLOPT_RETURNTRANSFER => true,
]);
$image = curl_exec($ch);