基于 Go 语言的高性能中国古诗词 API 服务,支持 REST 和 GraphQL 接口,提供简体/繁体中文、爬虫练习场等功能。
?lang= 参数切换docker run -d -p 1279:1279 palemoky/chinese-poetry-api:latest
完整配置参见 docker-compose.yml。
make help # 查看所有可用命令
make build # 构建项目
make process-data # 处理数据
make run-server # 启动服务
所有接口支持 lang 参数切换简繁体:
| 参数值 | 说明 |
|---|---|
zh-Hans | 简体中文(默认) |
zh-Hant | 繁体中文 |
# 简体中文(默认)
curl "http://localhost:1279/api/v1/poems"
# 繁体中文
curl "http://localhost:1279/api/v1/poems?lang=zh-Hant"
# 搜索诗词
curl "http://localhost:1279/api/v1/poems/search?q=静夜思"
# 随机诗词
curl "http://localhost:1279/api/v1/poems/random"
# 作者列表
curl "http://localhost:1279/api/v1/authors?page=1&page_size=20"
# 朝代列表
curl "http://localhost:1279/api/v1/dynasties"
端点: http://localhost:1279/graphql
# 繁体中文查询
query {
poems(lang: ZH_HANT, pageSize: 10) {
edges {
node {
title
content
author { name }
}
}
totalCount
}
}
# 搜索诗词
query {
searchPoems(query: "静夜思", searchType: TITLE) {
edges {
node { title author { name } }
}
}
}
# 统计信息
query {
statistics {
totalPoems
totalAuthors
poemsByDynasty { dynasty { name } count }
}
}
| 类型 | 说明 | 示例 |
|---|---|---|
all | 全文搜索(默认) | ?q=月 |
title | 标题搜索 | ?q=静夜思&type=title |
content | 内容搜索 | ?q=床前明月光&type=content |
author | 作者搜索 | ?q=李白&type=author |
本项目基于 chinese-poetry 数据集,包含:
| 分类 | 数量 |
|---|---|
| 五言绝句 | 18895 |
| 七言绝句 | 85032 |
| 五言律诗 | 71400 |
| 七言律诗 | 69028 |
| 乐府诗 | 9315 |
| 五代词 | 543 |
| 宋词 | 21369 |
| 元曲 | 10905 |
| 诗经 | 305 |
| 楚辞 | 65 |
| 论语 | 20 |
| 四书五经 | 14 |
| 其他 | 96232 |
graph TB
subgraph Client["客户端"]
REST["REST API<br/>?lang=zh-Hans/zh-Hant"]
GQL["GraphQL<br/>lang: ZH_HANS/ZH_HANT"]
end
subgraph Server["API Server (Gin)"]
Router["Router + Middleware<br/>Rate Limit / CORS"]
Handlers["REST Handlers"]
Resolvers["GraphQL Resolvers"]
Logger["Structured Logging<br/>(zap)"]
end
subgraph Core["Core Layer"]
Repo["Repository<br/>WithLang()"]
Search["Search Engine<br/>LIKE Search"]
Cache["Cache Layer"]
end
subgraph Database["SQLite Database"]
Hans["*_zh_hans Tables<br/>简体中文"]
Hant["*_zh_hant Tables<br/>繁体中文"]
end
REST --> Router --> Handlers --> Repo
GQL --> Router --> Resolvers --> Repo
Handlers --> Search
Resolvers --> Search
Repo --> Hans
Repo --> Hant
Server --> Logger
如有问题或建议,欢迎提交 Issue 或 Pull Request。
Content type
Image
Digest
sha256:0de9bf0fd…
Size
17.2 MB
Last updated
about 2 months ago
docker pull palemoky/chinese-poetry-api