公司动态
谜语大全 API 参数详解与请求优化最佳实践
适用场景谜语大全 API 适用于需要集成中文谜语内容的应用程序例如社交聊天机器人中的趣味互动模块每日谜语推送或谜语小游戏教育类 App 中的益智练习内容运营中自动生成谜语素材该接口提供三种操作模式随机返回一条谜语random、按类型分页列表list以及查询所有可用类型types覆盖了绝大多数对谜语数据的获取需求。接口能力边界请求方法POST请注意不是 GET请求地址https://v1.apizero.cn/api/riddleQPS 限制5 次 / 秒单应用需做好并发控制与本地缓存鉴权方式请求头X-API-Key需替换为有效密钥数据格式请求体与响应均为 JSON接口不提供模糊搜索或自定义谜语创建功能仅支持预先定义好的谜语库使用前应通过types模式确认可用的谜语类型避免传参错误。请求参数详解请求体为 JSON 对象包含三个可选字段具体说明如下参数名类型必填描述默认值可选值actionstring否操作模式randomrandom,list,typestypestring否仅 list 模式可用谜语类型小写字母无通过types获取例如dongwu动物pagestring否仅 list 模式可用页码1正整数建议作为字符串传入action 参数random返回单条随机谜语忽略type和page。适合每次调用获取一条新谜语。list返回分页列表可配合type和page使用。若type为空则返回所有类型的谜语列表。types返回所有谜语类型的列表及对应数量。该模式不消耗list的 QPS建议在应用启动时调用一次并缓存结果。type 参数list 模式专用仅在actionlist时有效。值必须从types返回的type_slug中获取均为小写字母。建议先调用types模式获取可用类型列表再构建类型筛选请求。page 参数list 模式专用page以字符串形式传入如1表示第 1 页。实际每页条数由服务端固定通常为 10 条以文档为准无法自定义。若传入非数字或超出总页数服务端可能返回空列表或 400 错误。鉴权与请求头所有请求均需在 HTTP 头部携带 API 密钥X-API-Key: 你的密钥 Content-Type: application/json密钥通过 API 管理后台获取请妥善保管避免泄露。生产环境中建议将密钥存储在环境变量或密钥管理服务中不要硬编码在代码里。curl 请求示例示例 1随机获取一条谜语curl -sS \ -X POST \ -H X-API-Key: $APIZERO_API_KEY \ -H Content-Type: application/json \ -d {action: random} \ https://v1.apizero.cn/api/riddle示例 2获取第 2 页的类型为“动物”的谜语列表curl -sS \ -X POST \ -H X-API-Key: $APIZERO_API_KEY \ -H Content-Type: application/json \ -d {action: list, type: dongwu, page: 2} \ https://v1.apizero.cn/api/riddle示例 3查询所有可用谜语类型curl -sS \ -X POST \ -H X-API-Key: $APIZERO_API_KEY \ -H Content-Type: application/json \ -d {action: types} \ https://v1.apizero.cn/api/riddle注意请将$APIZERO_API_KEY替换为你的真实密钥。密钥不要在公共网络传输建议在本地环境变量中设置。响应字段解读响应 JSON 结构固定{ code: 200, data: {}, message: success }字段类型说明codeint状态码200 表示成功其他表示错误dataobject具体数据结构随 action 变化messagestring提示信息成功时为 successrandom 模式下的 data 结构{ id: 123, question: 什么动物天天熬夜, answer: 熊猫因为它有黑眼圈, type: dongwu, type_name: 动物 }id: 谜语唯一标识question: 谜面answer: 谜底type: 类型 slug小写字母type_name: 类型中文名list 模式下的 data 结构{ total: 50, page: 1, total_pages: 5, list: [ { id: 1, question: ..., answer: ..., type: ..., type_name: ... } ] }total: 符合条件的谜语总数page: 当前页码total_pages: 总页数list: 本次返回的谜语数组types 模式下的 data 结构{ list: [ { type: dongwu, type_name: 动物, count: 20 }, { type: zhiwu, type_name: 植物, count: 15 } ] }type: 类型 slugtype_name: 类型中文名count: 该类型的谜语数量常见错误与调试400 Bad Request可能原因action参数值拼写错误如randemtype值未从types接口获取使用了未定义的类型page参数为负数或非数字字符串如abcJSON 格式非法如多余逗号、引号不匹配排查建议使用jq工具验证 JSON 格式echo {action:list,type:dongwu,page:1} | jq .401 Unauthorized缺少X-API-Key头密钥无效或已过期429 Too Many Requests超过 QPS 5 次/秒的限制建议在客户端实现指数退避重试或使用本地缓存减少请求频率500 Internal Server Error服务端内部问题可稍后重试若持续出现需联系平台技术支持工程化注意事项1. 合理使用 types 模式缓存类型列表在应用启动时调用一次types模式将类型列表缓存到本地如 Redis 或内存避免每次列表请求都重复获取类型定义。类型列表更新频率极低缓存有效期可设为 1 天。2. 分页列表的总页数获取list响应中包含total_pages前端可根据此值动态生成翻页控件。注意第一次加载时先获取第 1 页即可获取总页数。3. 随机谜语与列表查询的 QPS 共池random和list模式共享同一个 QPS 池5 次/秒若需要频繁随机获取谜语建议预先拉取一批谜语缓存到本地然后从本地随机选取减少 API 调用。4. 错误重试策略对于 429 和 500 错误建议实现指数退避重试初次等待 1 秒后续加倍最多重试 3 次。对于 400 和 401 错误应记录日志并提示开发者检查参数或密钥不应重试。5. 密钥管理与安全不要在客户端代码中硬编码 API Key在服务端使用环境变量或配置中心加载定期轮换密钥并监控异常调用6. 接口限流与降级如果业务需要高频使用建议添加本地缓存层。例如每小时拉取一次全量谜语列表通过设置page从 1 到total_pages循环请求但需注意 QPS 限制然后本地存储所有谜语后续全部从本地读取。参考文档谜语大全 API 文档原始 Markdown 文档