API
Curvioo API
一个只读的 HTTP 接口,把文本转成带样式的 Unicode 字符。不需要密钥、不需要注册、不使用
Cookie —— GET 一个 URL,读 JSON 即可。CORS 对所有来源开放,可以直接在浏览器里调用。
接口列表
| GET | /api/v1/health | 健康检查,返回服务名、版本和时间戳。 |
| GET | /api/v1/styles | 返回全部字体样式、全部 Unicode 映射和示例输出,可加 ?sample=。 |
| GET | /api/v1/styles/<text> | 同上,示例文本取自路径。 |
| GET | /api/v1/transform/<text> | 把文本转换成全部样式。 |
| GET | /api/v1/transform/<style>/<text> | 只返回指定的一个样式。 |
| GET | /api/v1/transform/b64/<base64url> | 文本含空格、斜杠或表情时用这个。 |
| GET | /api/v1/transform?text=... | 查询参数形式,支持下面所有参数。 |
| POST | /api/v1/transform | JSON 或表单请求体,参数相同。 |
参数
GET 用查询字符串,POST 用 JSON 或表单。路径形式同样会读取查询字符串里的
format 和 unicode。
text | 1–2000 个字符 | 要转换的文本。必填;路径形式下从 URL 里取。 |
style | great-vibes, allura, pinyon, sacramento, dancing, parisienne, alex-brush, homemade-apple, caveat, kaushan | 只返回一个字体样式而不是全部十个。ID 写错会返回 400。 |
unicode | script, boldScript, fraktur, bold, italic, boldItalic, sans, sansBold, monospace, boldFraktur | 指定 unicodeText 使用哪一套 Unicode 映射,可选。 |
format | json(默认)、plain、html | plain 直接返回纯文本;html 返回一个 <span>,且必须同时指定 style。 |
接入前必读
- API 只返回文本,不返回图片。PNG 和 SVG 导出是生成器的浏览器端功能, 需要授权字体和 canvas 才能渲染,所以没有出图接口。
- 十个字体样式只对应两套 Unicode 映射。六个用
script、 四个用boldScript,所以不同样式的unicodeText会重复; 样式之间真正的差异在fontFamily。想要十种明显不同的输出, 请用unicode=参数在上面 10 套映射里选。 - 只转换字母。只有
bold、sans、sansBold、monospace有数字;带音标的字母、标点、表情 和非拉丁文字(中文、西里尔、阿拉伯)在所有映射里都原样返回。 - 限额:每个 IP 每个 UTC 自然日 1,000 次。
每个响应都带
X-RateLimit-Limit、X-RateLimit-Remaining和X-RateLimit-Reset。
响应字段
外层是 { ok, input, count, requestedStyle, results[] },
results 里每一项包含:
unicodeText | 转换后的字符。这是可以直接粘贴到简介、评论、用户名里的内容——它是普通 Unicode 字符,不是字体。 |
fontText | 原样返回你的输入。配合 fontFamily 在你自己的页面里渲染真正的花体字。 |
fontFamily | 该样式对应的网络字体,例如 "Great Vibes", cursive。字体需要你自己加载。 |
unicodeStyle | unicodeText 实际使用的映射名称。 |
htmlSnippet | 一段现成的 <span>,已使用 fontFamily 且对文本做了 HTML 转义。 |
错误
失败时返回 { ok: false, error: { message, details } }。
ID 写错时 details.supported 会列出所有合法取值。
| 400 | 文本为空或超长、style 不存在、unicode 变体不存在、base64url 非法,或 format=html 时没给 style。 |
| 429 | 同一 IP 在一个 UTC 自然日内超过 1000 次请求。Retry-After 和 X-RateLimit-Reset 给出需要等待的秒数。 |
| 500 | 我们这边的 bug,响应体为空,欢迎反馈。 |
示例
# 全部样式,完整 JSON
curl "https://curvioo.com/api/v1/transform/Michael"
# 单个样式,纯文本
curl "https://curvioo.com/api/v1/transform/great-vibes/Michael?format=plain"
# 自己指定 Unicode 映射
curl "https://curvioo.com/api/v1/transform/Michael?unicode=fraktur&format=plain"
# 含空格或符号的文本:用 base64url,或改用 POST
curl "https://curvioo.com/api/v1/transform/b64/SGVsbG8gV29ybGQ?format=plain"
curl -X POST https://curvioo.com/api/v1/transform \
-H 'Content-Type: application/json' \
-d '{"text":"Hello World","style":"dancing","format":"plain"}'