BookAPI
收藏官方服务:
资源简介:
Search books by title, author, genre, series, publish date, character or setting. Clean JSON, free tier.
创建时间:
2026-09-10
原始信息汇总
BookAPI 数据集概述
基本信息
- 数据集名称:BookAPI
- 数据集地址:https://rapidapi.com/jterry136/api/bookapi8
- API 基础地址:https://bookapi8.p.rapidapi.com/
- 分类:Education
- 提供者:jterry136
- 订阅者数量:2
- 版本:v1(当前版本)
- 定价计划:BASIC($0.00 / mo)、PRO($0.00 / ---)
- 性能指标:热度 9.3、服务级别 99%、延迟 344ms
数据集简介
BookAPI 提供对经过人工精选的图书数据库的查询服务,通过七个简洁的 GET 端点进行访问。与大多数仅提供书目元数据的图书 API 不同,该数据集还索引了每本书中的角色和地点信息。
数据覆盖范围
- 图书数量:201 本手工精选图书
- 作者数量:146 位
- 流派数量:51 种
- 系列数量:41 个
- 数据持续更新,每一条记录均经人工验证
端点列表
| 方法 | 路径 | 功能 |
|---|---|---|
| GET | / |
服务健康检查(返回 text/plain) |
| GET | /docs |
交互式文档 |
| GET | /books/{title} |
按精确标题查询图书 |
| GET | /books/author/{author} |
按精确作者查询图书 |
| GET | /books/genre/{genre} |
按流派查询图书(最多 20 本) |
| GET | /books/publishdate/{publishdate} |
按出版日期查询图书(最多 20 本) |
| GET | /books/character/{character} |
查询包含某角色的图书 |
| GET | /books/location/{location} |
查询包含某地点的图书 |
| GET | /books/series/{series} |
查询某系列中的图书 |
使用约定
- 只读:仅支持 GET,无写入端点。
- 无需认证:不需要密钥、令牌或请求头。
- 响应为数组:每次查询均返回 JSON 数组,即使只匹配到一本书。
- 无匹配不是错误:未找到结果返回
200和空数组[],不返回404。 - 精确且区分大小写匹配:不支持部分、前缀或模糊搜索。
- 流派为小写:如
/books/genre/fiction。 - 需对空格进行 URL 编码:如
/books/author/Frank%20Herbert。
图书对象结构
| 字段 | 类型 | 说明 |
|---|---|---|
created_at |
string (ISO 8601) | 记录添加时间 |
book_id |
string (UUID) | 由标题、作者、流派、出版日期确定性派生的稳定标识符 |
title |
string | 书名 |
author |
string | 主要作者 |
genre |
string | 始终为小写 |
publish_date |
string (YYYY-MM-DD) |
出版日期 |
characters |
string[] | null |
locations |
string[] | null |
series |
string | null |
分页
- 每个
/books/*端点每次请求最多返回 20 本图书。 - 使用可选的
page查询参数(基于 1)请求后续页面。 page省略或为1时返回第一页;page=3返回第 41–60 本。- 超出最后一页返回
200和[]。 page=abc、page=0、page=-5均回退到第一页,不报错。- 响应中无总数统计,也无
Link头。
错误处理
| 状态码 | 响应体 | 触发条件 |
|---|---|---|
200 |
JSON 数组 | 成功,可能为 [] |
404 |
text/plain |
路径未匹配任何路由 |
500 |
{"error": "..."} |
数据库错误(如无法解析的日期)或未处理异常 |
- 文档化端点不会返回
4XX。错误输入由数据库拒绝而非前置校验,因此表现为500。 - 错误响应格式:
{ "error": "Internal Server Error" }
数据规则
- 图书流派始终为小写。
- 流派用作 URL 路径段,标点符号(尤其是斜杠)会破坏路由。



