目录


使用eSchol亚博pt老虎机网页arship API查询项目(出版物),作者,及单位(期刊、系列、部门/研究单位)亚博pt老虎机网页eScholarship.org,返回为JSON图形ql查询语言。

图表QL实现

https://亚博pt老虎机网页www.rsundata.com/graphql

此基于web的IDE提供了一个选项卡式界面,用于根据eScholarship API编辑和测试GraphQL查询。Documentation Explorer允许您深入到每个对象、其字段和参数。亚博pt老虎机网页

可查询对象

IDE也是查找可查询对象集的地方。单击右上角的“文档”链接可搜索对象及其组件和属性。

简单的例子

获取所有eSch亚博pt老虎机网页olarship项目(默认值:列出的前100个项目,按最近添加的项目排序):

{items{nodes{title permalink}}}

图表QL

使用DOI获取亚博pt老虎机网页eScholarship项目:

{项目(id:“10.3945/jn.114.202333”,方案:DOI){永久链接标题期刊卷号issn}}

图表QL

请注意,项目的主id是ARK id。上面的示例是使用替代标识符方案的查询:例如指定物品(id:“方舟:/13030/qt01r1171s”)指向同一项。

项目数据

项目查询提供了所有对象中最丰富的数据量,包括:

permalink-项目和相应元数据驻留在eScholarship上的页面:即。亚博pt老虎机网页https://亚博pt老虎机网页www.rsundata.com/uc/item/65k8r3bd

内容链接-PDF/内容文件的下载链接(如果适用)

探索图表QL实现查看所有可用字段。

标页码

使用节点领域这些对象数组也可以在选择集中与描述该集合的以下实用字段一起出现:

全部的-可以返回的所有对象的近似计数

更多-下一页的不透明光标字符串,如果总数超过限制(默认设置为100)

以下查询的结果包括游标字符串更多用于检索下一页(共10个结果):

{unit(id:“ucsdecon_rw”){name items(first:10){total more nodes{permalink title}}}}

图表QL

要检索下一页的结果,请再次查询更多进入更多论据项目. 不要使用此参数指定任何其他参数;该字符串已经对前面的一组参数进行了编码(在本例中,第一:10应在下一次查询中删除)。使用更多参数为下一页提供新的游标字符串。如果已到达末尾,则返回更多值将为空。

{unit(id:“ucsdecon_rw”){id name items(more:“eyjmaxjzdci6mtasim9yzgvyijoyiqurerruvtqyimxhc3rjrci6inf0mwz6mtc4ndcilcjsyxn0rgf0zsi6ijiwmtytmteifq”){节点总数{permalink title}}

图表QL

更多示例查询

获取单元中所有项目的标题、发布日期和作者:

{unit(id:“lmri_pr”){id name items{nodes{title permalink published authors{nodes{name}}}}}

图表QL

获取给定单位内具有特定“标记”(即关键字或主题)的前50项:

{unit(id:“lbnl”){id name items(first:50,tags:“subject:Environmental sciences”){total more nodes{title permalink subjects}}}}

图表QL

获取与作者关联的所有项目(目前精确,将来模糊):

{作者(电子邮件:“lisa。schiff@ucop.edu“”{id name items{total nodes{id title}}}

图表QL

获取特定类型的所有项目:

{items(tags:“type:CHAPTER”){total nodes{bookstitle permalink published}}}

图表QL

获取在特定日期之间发布的所有项目:

{单位(id:“ucd”){名称项目(在“2017-01-01”之后,在“2017-12-31”之前,顺序:PUBLISHED_DESC){更多节点总数{permalink title PUBLISHED}}}

图表QL

确定物品首次出现在eScholarship上的时间亚博pt老虎机网页

{item(id:“ark:/13030/qt3dw6f08j”){id title journal volume issn added}

图表QL

使用元素ID获取项目:

{项目(id:“709820”,方案:OA_PUB_id){id标题期刊卷发行issn添加}

图表QL

写入数据

eSch亚博pt老虎机网页olarship API还允许使用QraphQL的突变写入数据,包括创建、替换或提取项目的能力GraphiQL实现更多细节。

Ruby示例——检索前5项

require'httparty'query=“{items(first:5){nodes{title permalink}}}}”result=httparty.post(“https://escholarship.o亚博pt老虎机网页rg/graphql“,:headers=>{'Content Type'=>'application/json'},:body=>{“query”=>query}.to_json)result.code==200或引发“HTTP error{result.code}:{result.body}”结果['errors']并引发“GraphQL error:#{result['errors']}放置JSON.parse(result.body)['data']

Ruby示例--使用分页检索所有项

需要'httparty'more=“null”loop do query=“{unit(id:\“脊椎动物”\u pest\u conference\”{id name items(more:{more}){total more nodes{permalink}}}}”结果=httparty.post('//www.rsundata.com/graphql“,:head亚博pt老虎机网页ers=>{'Content Type'=>'application/json'},:body=>{“query”=>query}.to_json)result.code==200或raise“HTTP error{result.code}:{result.body}”result['errors']和raise“GraphQL error:{result['errors']}”puts JSON.parse(result.body)['data']data=JSON.parse(result.body).dig('data',unit',items')more=data.dig('more')#打印ARKS数据['nodes nodes.nodes


Python示例

import requests import json query=“{items(first:5){nodes{title permalink}}}}”response=requests.post('https://escholarship亚博pt老虎机网页.org/graphql,headers={'Content Type':'application/json'},data=json.dumps({'query':query}))如果response.status_code!=200:raiseexception(“HTTP错误%d:%s”%(response.status_code,str(response.content)))如果response.json()中有“errors”:引发异常(“GraphQL error:+str(response.json()['errors'])打印(response.json()['data']))

行为准则

请不要滥用API,一次几个小时内每小时有数千个请求。API滥用者可能会受到限制或被切断。

反馈

我们很想知道您是如何使用eScholarship API的-请亚博pt老虎机网页分享你的故事和我们一起!