API端点
https://api.kamyang.com/onepoem/v1
数据示例
{
"status": "success",
"code": 200,
"data": {
"content": "梅须逊雪三分白,雪却输梅一段香。",
"author": "卢梅坡《雪梅》"
},
"meta": {
"requestId": "ae25d794-82e6-4a87-92e2-fb8df0848b35",
"timestamp": "2025/7/24 15:12:18",
"degraded": false,
"copyright": "晓梦羊®工作室"
}
}
请求限制
每分钟限制请求60次,已基本满足个人博客使用需求
使用场景
首页随机诗词、底部随即诗词、看板娘随机诗词
自由发挥使用场景
HTML+JS示例(带注释)
<div>
<!-- 外层容器 -->
<div id="poetry-content">正在加载诗句</div> <!-- 显示诗句内容的容器,初始提示文本 -->
<div id="poetry-author"></div> <!-- 显示作者信息的容器 -->
<button onclick="loadPoetry()">换一句</button> <!-- 点击按钮触发加载诗句函数 -->
</div>
<script>
// 异步函数:从API加载诗词数据
async function loadPoetry() {
try {
// 使用fetch API发送GET请求到诗词接口
const response = await fetch('https://api.kamyang.com/onepoem/v1');
// 检查响应状态,若非200-299范围则抛出错误
if (!response.ok) throw new Error('网络响应异常');
// 解析响应体为JSON格式
const data = await response.json();
// 将获取的诗句内容填充到指定元素
document.getElementById('poetry-content').textContent = data.data.content;
// 将作者信息填充到指定元素
document.getElementById('poetry-author').textContent = data.data.author;
} catch (error) {
// 错误处理:显示用户友好的错误信息
document.getElementById('poetry-content').textContent = '获取诗句失败,请重试';
// 在控制台输出详细错误信息(用户不可见)
console.error('API请求错误:', error);
}
}
// 页面加载完成后自动执行一次诗句加载
window.onload = loadPoetry;
</script>