You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

OpenLibrary RESTful API查询失败:求标题前缀过滤及指定字段返回方案

解决OpenLibrary API按标题前缀过滤并返回指定字段的问题

我来帮你调整这个查询,让它完全满足你的需求。你的原查询里固定了特定作者ID,也没设置正确的标题过滤规则,这就是没法实现按标题前缀筛选的核心问题。

核心调整思路

要达成目标,我们需要做这几个关键优化:

  • 正则前缀匹配实现标题前五个字母的筛选
  • 明确指定要返回的字段,避免冗余数据
  • 配置作者字段,直接返回名称而非仅ID
  • 利用OpenLibrary的封面URL规则,后续拼接大图缩略图链接

完整查询示例(以标题前五个字母为"Harry"为例)

http://openlibrary.org/query.json?type=/type/edition&title=/^Harry/&fields=title,authors.name,publish_date,description,covers&limit=10

各参数详细说明

  • type=/type/edition:限定查询对象为图书版本,避免返回其他类型的资源
  • title=/^Harry/:正则表达式^表示匹配字符串开头,这里精准匹配标题以"Harry"(前五个字母)开头的图书
  • fields=title,authors.name,publish_date,description,covers:明确指定返回的核心字段:
    • title:图书标题
    • authors.name:作者的真实名称(代替默认返回的作者ID)
    • publish_date:图书出版日期
    • description:图书描述内容
    • covers:封面图片的唯一ID(用于拼接大图链接)
  • limit=10:可选参数,限制单次返回的结果数量,你可以根据需求调整数值

封面大图链接拼接方法

返回结果里的covers字段是封面ID的数组(比如[123456]),你需要用这个ID拼接成大图缩略图的URL,固定格式如下:

https://covers.openlibrary.org/b/id/{cover_id}-L.jpg

举个例子,如果封面ID是123456,对应的大图链接就是https://covers.openlibrary.org/b/id/123456-L.jpg

额外注意事项

  • 更换匹配前缀时,只需要修改title=/^Harry/里的Harry即可(比如title=/^Twili/匹配标题以"Twili"开头的图书)
  • 如果返回的description是包含typevalue的对象,需要提取value字段作为实际描述文本
  • 可添加offset=0参数实现分页,比如offset=10就能获取第11-20条结果

内容的提问来源于stack exchange,提问作者Le Mot Juiced

火山引擎 最新活动