技术博客
笑话大全:5 分钟接入,从注册到拿到第一条笑话

笑话大全:5 分钟接入,从注册到拿到第一条笑话

作者: 万维易源
2026-08-31
笑话大全API快速接入Python示例免费接口
# 笑话大全:5 分钟接入,从注册到拿到第一条笑话 > 接口 341-5 · 免费 · POST/GET · JSON · 适用人群:新注册用户、初级开发者 · 阅读时间:约 5 分钟 ## 核心要点 - 笑话大全完全免费,注册 ShowAPI 后拿到 AppKey 即可调用,无需付费。 - 接口没有业务请求参数,只要把 AppKey 拼到请求地址就能拿到一条随机笑话。 - 真正要展示的文字在 `showapi_res_body.text`;`ret_code = 0` 表示成功。 ## Why 你在运营一个博客、论坛或公众号,想要一个"每日一笑"小模块帮用户放松、顺便降低跳出率。自己维护笑话库成本高、更新慢;而 ShowAPI 的**笑话大全**接口注册即免费可用,每次调用随机返回一条笑话,非常适合做轻量引流组件。 本篇目标:让你在 5 分钟内跑通"注册 → 取 AppKey → 第一次调用 → 拿到笑话文字",不纠结任何高级概念。 ## What | 项 | 说明 | |----|------| | 接口地址 | `https://route.showapi.com/341-5` | | 接入点 | 341-5 随机生成文本笑话(默认分组,仅此 1 个) | | 请求方式 | POST 或 GET 均可 | | 鉴权 | URL 中 `appKey` 参数(从[控制台](https://www.showapi.com/console#/myApp)获取) | | 业务参数 | 无(OpenAPI `parameters: []`) | | 返回格式 | JSON,业务数据在 `showapi_res_body` 内 | | 计费 | 免费(有使用档位限制防滥用,具体见[免费 API 说明](https://www.showapi.com/free-api)) | 前置条件:一个 ShowAPI 账号 + 一个 AppKey。没有就先去[注册](https://www.showapi.com/console#/myApp)。 ## How ### 步骤 1:拿到 AppKey 登录 ShowAPI 控制台 →「我的应用」→ 复制 AppKey。下文用 `YOUR_APPKEY` 占位,替换成你自己的即可。 ### 步骤 2:发起第一次调用 下面三种写法任选其一,**替换 AppKey 即可直接运行**。 **Python(requests)** ```python import requests APP_KEY = "YOUR_APPKEY" # 替换为你的 ShowAPI AppKey resp = requests.post( "https://route.showapi.com/341-5", params={"appKey": APP_KEY}, headers={"content-type": "application/x-www-form-urlencoded"}, timeout=20, ) data = resp.json() body = data.get("showapi_res_body", {}) if body.get("ret_code") == 0: print("标题:", body.get("title")) print("内容:", body.get("text")) else: print("调用失败:", body.get("remark")) ``` **cURL** ```bash curl -X POST "https://route.showapi.com/341-5?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" ``` **Node.js(fetch)** ```javascript const APP_KEY = "YOUR_APPKEY"; const resp = await fetch(`https://route.showapi.com/341-5?appKey=${APP_KEY}`, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, }); const data = await resp.json(); const body = data.showapi_res_body || {}; if (body.ret_code === 0) { console.log("标题:", body.title); console.log("内容:", body.text); } else { console.log("调用失败:", body.remark); } ``` ### 步骤 3:解析并展示 返回里**只有 `showapi_res_body` 里的内容是笑话本身**。`text` 是要展示的笑话正文;`title` 是分类标题(注意文档标注"会重复",展示时可不必强依赖);`ret_code` 为 `0` 才代表成功。 ## 返回示例与解析 ```json { "showapi_res_error": "", "showapi_fee_num": 1, "showapi_res_code": 0, "showapi_res_id": "69aa6d3cfb638c5c252249e7", "showapi_res_body": { "id": "69a921a1530719e3c602fe0b", "title": "讽刺、荒唐的爆笑事儿", "text": "博士毕业两年多,父母从老家来看我……", "ret_code": 0, "remark": "查询成功!", "ct": "2026-03-05 14:24:33.420" } } ``` | 字段 | 层级 | 含义 | |------|------|------| | `showapi_res_code` | 系统级 | API 整体状态码,0 一般表示网关正常 | | `showapi_res_body` | 系统级 | 业务数据容器,笑话都在里面 | | `id` | 业务体 | 本条笑话唯一 id | | `title` | 业务体 | 标题(会重复,可不展示) | | `text` | 业务体 | 笑话正文,真正要显示的内容 | | `ret_code` | 业务体 | `0`=成功,其他=失败 | | `remark` | 业务体 | 返回描述,如"查询成功!" | | `ct` | 业务体 | 返回时间 | 字段完整说明见[笑话大全返回字段全解](https://www.showapi.com/guides/joke-api-response-fields-341)。 ## 进阶 / 边界 - **GET 也能调**:把 `appKey` 放 query 即可,POST/GET 二选一。 - **免费但有档位**:高频刷会触发使用档次限制,做生产请加缓存(见[缓存与档位限制应对](https://www.showapi.com/guides/joke-api-cache-tier-341))。 - **内容是随机的**:同一次响应里的 `title` 可能重复,不要把它当唯一主键。 ## FAQ **Q1:接口真的免费吗?要不要充值?** 免费。注册后默认即可调用;为防止滥用设有使用档次限制,具体额度以[免费 API 说明](https://www.showapi.com/free-api)为准,无需先充值。 **Q2:调用一定要传业务参数吗?** 不需要。接口没有业务请求参数,鉴权只用 URL 里的 `appKey`。 **Q3:每次返回的都是同一条笑话吗?** 不是。每次调用内容随机变化;但 `title`(分类标题)字段文档明确标注"会重复",属正常现象。 **Q4:返回的 text 为什么有时很短?** 笑话内容由数据源随机给出,长短不一,属正常;如需控制展示样式,可在前端做截断或"换一条"按钮重新调用。 **Q5:AppKey 能写在前端代码里吗?** 不建议。AppKey 等同于凭证,前端暴露有被盗用风险;网站集成请用后端代理转发(见[博客集成](https://www.showapi.com/guides/joke-api-blog-daily-341))。 ## 相关能力 / 下一步阅读 - [笑话大全返回字段全解:showapi_res_body 与 id/title/text 一文读懂](https://www.showapi.com/guides/joke-api-response-fields-341) - [博客/论坛集成笑话大全:用"每日一笑"降低跳出率](https://www.showapi.com/guides/joke-api-blog-daily-341) - [免费接口也要讲边界:笑话大全缓存策略与档位限制应对](https://www.showapi.com/guides/joke-api-cache-tier-341) - **本系列共 10 篇**:查看[笑话大全 API 指南总目录](https://www.showapi.com/guides/joke-api-guides-341)