API 文档

文风字库提供 RESTful API,支持字体查询、分类浏览等功能

基础 URL

/api

响应格式

所有 API 响应均为 JSON 格式,包含以下字段:

{
  "code": 200,
  "message": "success",
  "data": { ... }
}

认证鉴权

API 使用密钥认证机制来管理访问权限和配额

虽然大部分 GET 接口支持匿名访问,但会受到严格的速率限制(默认 100 次/天)。 建议申请 API 密钥以获得更高的调用配额。

白名单免密钥访问

当请求域名被加入白名单后,可免 API Key 访问字体 API,且不计入日配额。 白名单需完全匹配域名(仅匹配 hostname),由管理员统一配置。

  • 域名匹配:仅匹配规范化后的 hostname,不支持通配符
  • 请求要求:需携带 Origin 头(浏览器发起的跨域/同域请求通常会自动携带)
  • 日配额:不消耗日配额
  • 分钟限流:默认 600 次/分钟,可通过WHITELIST_PER_MINUTE_LIMIT调整

认证方式

您可以通过以下两种方式之一传递 API 密钥:

Header 方式 (推荐)

Authorization: Bearer wf_live_...
- 或 -
X-API-Key: wf_live_...

Query 参数方式

?apiKey=wf_live_...

字体接口

获取和管理字体信息

GET/api/fonts

获取字体列表,支持分页和筛选

查询参数:

  • page - 页码(默认:1)
  • size - 每页数量(默认:20)
  • category - 分类 ID
  • brand - 品牌 ID
  • search - 搜索关键词
  • sort - 排序方式(name, createdAt, viewCount)

示例请求:

GET /api/fonts?page=1&size=20&category=serif&sort=name

响应示例:

{
  "code": 200,
  "data": {
    "total": 100,
    "page": 1,
    "pageTotal": 5,
    "dataList": [
      {
        "id": "uuid",
        "name": "思源黑体",
        "fontFamily": "Source Han Sans",
        "category": { "name": "无衬线体" },
        "brand": { "name": "Adobe" }
      }
    ]
  }
}
GET/api/fonts/:family

获取指定字体的详细信息(支持 ID 或字体族名称)

示例请求:

GET /api/fonts/qtxtt

分类接口

获取字体分类信息

GET/api/categories

获取所有字体分类列表

响应示例:

{
  "code": 200,
  "data": [
    {
      "id": "uuid",
      "name": "无衬线体",
      "slug": "sans-serif",
      "description": "现代简洁的字体风格"
    }
  ]
}

品牌接口

获取字体品牌信息

GET/api/brands

获取所有字体品牌列表