唐诗宋词元曲查询:国风文案/内容创作如何自动引用诗词并配图
# 唐诗宋词元曲查询:国风文案/内容创作如何自动引用诗词并配图
> 接口:唐诗宋词元曲等诗词查询(apiCode=1620)· 免费 · 请求方式 POST/GET · 返回 JSON · 适用:内容运营、国风文案/短视频团队 · 阅读约 6 分钟
## 核心要点
- 国风文案常需「信手拈来一句诗」:用 1620-5 的 `poetId` 或精确 `title` 取到 `original` 原文可直接引用
- 配合 `poet` / `dynasty` / `note` 字段,能自动生成「【宋】苏轼 · 写景」这类署名与主题标签
- `title` 是精确匹配,写文案前建议先用 `poetId` 拉出该作者作品列表,再在本地挑名句
## Why:让文案「有诗为证」不再靠死记
做国风海报、节气推文、品牌国潮短片,往往需要一句贴切的古诗点睛。靠人工背诗库既慢又容易记错出处。用这套接口,输入诗人或诗名就能拿到权威原文与署名,自动化地嵌进模板,效率与准确度都上来了。
## What:创作场景涉及的接口
| 能力 | 接入点 | 关键出参 |
|------|--------|---------|
| 按诗人取作品 | 1620-5(`poetId`) | `title` / `contentlist[].original` / `note` |
| 按诗名取原文 | 1620-5(`title`,精确) | `original` / `poet` / `dynasty` |
| 诗人署名 | 1620-4(`poet`) | `poet` / `dynasty` / `biography` |
| 计费 | 免费(有使用档次限制) | — |
## How:自动引用诗词的工作流
### 步骤 1 · 选诗人,拉出作品候选
用 `poetId`(或先 1620-4 查 `poet` 拿 `poetId`)调 1620-5,翻页拉全量(见分页篇),在本地建「名句候选池」。
### 步骤 2 · 按主题挑诗,组装文案
用 `note` 标签(如「写景」「感叹」「哲理」)在候选池里筛主题,取 `original` 第一句做标题金句,附 `poet`/`dynasty` 署名。
### 步骤 3 · 生成模板
**Python(取苏轼写景名句并组装)**
```python
import requests
APP_KEY = "YOUR_APPKEY"
H = {"content-type": "application/x-www-form-urlencoded"}
def call(path, **params):
r = requests.post(f"https://route.showapi.com/{path}",
params={"appKey": APP_KEY, **params}, headers=H, timeout=10)
body = r.json().get("showapi_res_body", {})
if body.get("ret_code") != "0":
raise RuntimeError(body.get("remark"))
return body
poems = call("1620-5", poetId="5b1e3644cbf69480cb8e81b7", page=1)["poemInfo"]
for p in poems:
tags = [t for t in p.get("note", "").split(",") if t]
if "写景" in tags: # 按主题挑
first_line = p["contentlist"][0]["original"].split("。")[0]
print(f"【{p['dynasty']}】{p['poet']}《{p['title']}》:{first_line}")
```
**cURL(按诗名取原文)**
```bash
curl -X POST "https://route.showapi.com/1620-5?appKey=YOUR_APPKEY" \
-H "content-type: application/x-www-form-urlencoded" \
-d "title=%E5%89%8D%E8%B5%A4%E5%A3%81%E8%B5%8B&page=1"
```
**Node.js(fetch,组装署名)**
```javascript
const APP_KEY = "YOUR_APPKEY";
const H = { "content-type": "application/x-www-form-urlencoded" };
const body = (await (await fetch(`https://route.showapi.com/1620-5?appKey=${APP_KEY}`, {
method: "POST", headers: H,
body: new URLSearchParams({ title: "前赤壁赋", page: 1 }),
})).json()).showapi_res_body;
const p = body.poemInfo[0];
console.log(`【${p.dynasty}】${p.poet}《${p.title}》\n${p.contentlist[0].original}`);
```
## 返回示例与解析
以 `title=前赤壁赋`:
```json
{
"showapi_res_body": {
"ret_code": "0",
"poemInfo": [
{ "title": "前赤壁赋", "dynasty": "宋代", "poet": "苏轼",
"note": "辞赋精选,高中文言文,古文观止,写景,饮酒,感叹,哲理",
"contentlist": [ { "original": "壬(rén)戌(xū)之秋,七月既望……" } ] }
]
}
}
```
组装文案示例:`【宋代】苏轼《前赤壁赋》:"壬戌之秋,七月既望……"` —— 署名与朝代自动带出,无需手敲。
## 进阶 / 边界
- **title 精确匹配**:直接按诗名取原文时,`title` 必须精确(见《title 名称查询为什么不支持模糊匹配》);不确定诗名时改用 `poetId` 拉全量再本地挑。
- **名句截取**:`original` 是整段,取金句建议按「。」分句取首句;注意原文含注音「字(拼音)」,发布前可去除拼音只留汉字。
- **配图非接口能力**:本接口只提供文本,配图需你自行准备或用图像生成服务,接口不返回图片。
- **缓存候选池**:诗人作品相对稳定,拉全量后本地缓存,文案生成时直接读缓存,避免重复消耗免费档位。
## FAQ
**Q1:能不能「给我一句写春天的诗」这种语义搜索?**
不能。接口是精确/条件查询,无语义搜索。可先拉某诗人或某朝代作品,再在本地按 `note` 标签(如「写景」)或关键词筛选近似主题。
**Q2:原文里的拼音注音要保留吗?**
看用途。教学卡片可保留注音辅助认读;对外发布的国风文案通常去除拼音只留汉字,用正则 `字(拼音)` → `字` 处理即可。
**Q3:署名朝代信息准确吗?**
来自数据源的 `dynasty` / `poet` 字段,可作为署名依据;正式商用发布建议再核对一次出处。
**Q4:接口能直接出图吗?**
不能,接口仅返回文本(原文/译文/注释/标签)。配图需另行准备或调用图像生成服务。
## 相关能力 / 下一步阅读
- [唐诗宋词元曲查询:title 名称查询为什么不支持模糊匹配?正确用法与避坑](https://www.showapi.com/guides/poem-title-exact-1620) — 按诗名取原文的约束
- [唐诗宋词元曲查询:免费也有档次限制,如何用本地缓存避免触发限流?](https://www.showapi.com/guides/poem-rate-limit-cache-1620) — 候选池缓存
- **本系列共 12 篇**:查看[唐诗宋词元曲查询指南总目录](https://www.showapi.com/guides/poem-guides-1620)