技术博客
图书ISBN查询:5 分钟接入,从注册到第一条图书信息

图书ISBN查询:5 分钟接入,从注册到第一条图书信息

作者: 万维易源
2026-08-27
图书ISBN查询API快速接入Python示例免费接口
# 图书ISBN查询:5 分钟接入,从注册到第一条图书信息 > 接口/接入点:图书ISBN查询(1626-1) · 是否免费:免费(注册默认可调用,有使用档次限制) · 请求方式:POST / GET · 返回格式:JSON · 适用人群:新注册用户、初级开发者 · 阅读时间:约 5 分钟 ## TL;DR - 图书ISBN查询是免费接口:传 ISBN 即可拿到书名、作者、出版社、定价、封面图等 13 个字段。 - 三步跑通:注册取 AppKey → 调 `https://route.showapi.com/1626-1?appKey=YOUR_APPKEY` → 解析 `showapi_res_body.data`。 - 业务数据在 `showapi_res_body` 内;`ret_code=0` 表示成功。 ## Why 做图书相关的小工具、藏书管理、书店盘点时,最麻烦的就是"拿到一个 ISBN,却要手工去搜书名作者出版社"。图书ISBN查询把这步变成一次 HTTP 调用:你给号,它还你结构化的书目信息,直接落库或展示。注册即可免费调用,先跑通最小示例,再把它嵌进你的系统。 ## What 前置条件与接口速览: | 项 | 说明 | |----|------| | 接口地址 | `https://route.showapi.com/1626-1?appKey={your_appKey}` | | 接入点 | 图书ISBN查询(1626-1),本接口仅 1 个接入点 | | 请求方式 | POST / GET | | 鉴权 | AppKey(query 参数 `appKey`,或到 AppKey 管理页获取) | | 计费 | 免费(有使用档次限制,详见档位说明) | | 返回格式 | JSON | | 更新频率 | 每天不定时更新多次,本月出版物一般当月就可查 | | 集成能力 | MCP 服务、OpenAPI 3.0(YAML/JSON) | 请求参数仅 1 个业务字段 `isbn`(String,示例 `9787208061644`)。作为唯一查询条件,调用时**必须传入**。 ## How ### 步骤 1:获取 AppKey 登录 ShowAPI 控制台 → 「我的应用」→ 创建应用 → 复制 AppKey。下文用 `YOUR_APPKEY` 占位,请替换为你自己的。 ### 步骤 2:发起第一次调用 下面三种写法任选其一,替换 `YOUR_APPKEY` 即可运行(默认超时 10 秒)。 **Python(requests)** ```python import requests APP_KEY = "YOUR_APPKEY" ISBN = "9787208061644" resp = requests.post( "https://route.showapi.com/1626-1", params={"appKey": APP_KEY}, data={"isbn": ISBN}, timeout=10, ) resp.raise_for_status() body = resp.json()["showapi_res_body"] if body.get("ret_code") != 0: print("查询失败:", body.get("remark")) else: d = body["data"] print(d["title"], "—", d["author"], "—", d["publisher"], "— ¥", d["price"]) ``` **cURL** ```bash curl -X POST "https://route.showapi.com/1626-1?appKey=YOUR_APPKEY" \ -H "content-type: application/x-www-form-urlencoded" \ -d "isbn=9787208061644" ``` **Node.js(fetch)** ```javascript const APP_KEY = "YOUR_APPKEY"; const ISBN = "9787208061644"; const res = await fetch( `https://route.showapi.com/1626-1?appKey=${APP_KEY}`, { method: "POST", headers: { "content-type": "application/x-www-form-urlencoded" }, body: new URLSearchParams({ isbn: ISBN }), } ); const body = (await res.json()).showapi_res_body; if (body.ret_code !== 0) { console.error("查询失败:", body.remark); } else { const d = body.data; console.log(`${d.title} — ${d.author} — ${d.publisher} — ¥${d.price}`); } ``` ### 步骤 3:解析返回 业务数据全部位于 `showapi_res_body` 内。先判断 `ret_code`:为 `0` 表示成功,否则表示失败/未找到(见错误码排查篇)。成功时 `data` 是**单个图书对象**(不是数组),直接取字段即可。 ## 返回示例与解析 ```json { "showapi_res_code": 0, "showapi_res_id": "5fd9ca098d57bae137453934", "showapi_res_body": { "ret_code": 0, "remark": "success", "data": { "title": "追风筝的人", "author": "卡勒德·胡赛尼", "publisher": "上海人民出版社", "pubdate": "2006-05", "edition": "1", "page": "362", "format": "32开", "paper": "胶版纸", "binding": "平装", "isbn": "9787208061644", "price": "25.00", "gist": "许多年过去了,人们说陈年旧事可以被埋葬……", "img": "http://static1.showapi.com/app2/isbn/imgs/xxxx.jpg" }, "showapi_fee_code": 0 } } ``` > 注意:`data` 是对象不是数组;`produce` 字段文档未给出确切含义(示例多为日期),解析时按需取用即可。 ## 进阶 / 边界 - **更新时效**:本月新书一般当月可查,极新书可能稍晚入库,必要时隔日重试。 - **免费档位**:接口免费但有调用档次限制,量大会触发限额;高频场景请看缓存策略篇。 - **查不到**:`ret_code` 非 0 多为 ISBN 错误或该书尚未收录,详见错误码排查篇。 ## FAQ **Q1:一定要用 POST 吗?GET 行不行?** 文档支持 POST 与 GET。示例用 POST 表单(`application/x-www-form-urlencoded`),简单调试也可改用 GET 把参数放 query。 **Q2:AppKey 能写在前端页面里吗?** 不建议。AppKey 等同于你的调用凭证,暴露在公网前端有被盗刷风险;前端应走你自己的后端代理转发。 **Q3:返回里没有畅销热度/印次字段?** 接口返回字段以文档"返回参数"为准(见返回字段全解篇),价值描述中提到的个别词在返回结构中无对应字段,请以实际返回字段为准。 **Q4:接口免费,会一直免费吗?** 当前为免费服务,注册默认可调用,但设有使用档次限制以防滥用;具体档位以官方档位说明页为准。 ## 相关能力 / 下一步阅读 - [图书ISBN查询返回字段全解:一本书的 13 个元数据字段一文读懂](https://www.showapi.com/guides/isbn-book-fields-explained-1626) - [图书ISBN查询错误码排查:ret_code 非 0 与"查不到"怎么办](https://www.showapi.com/guides/isbn-book-error-handling-1626) - [图书管理系统如何集成图书ISBN查询:从扫码录入到藏书档案](https://www.showapi.com/guides/isbn-book-library-system-1626) - **本系列共 12 篇**:查看[图书ISBN查询(apiCode=1626)官方指南总目录](https://www.showapi.com/guides/isbn-book-guides-1626)