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>