-h、 --帮助显示此帮助消息并退出 -s SPEC,--SPEC SPEC包含API规范的哈希格式文件。 -m方法,--方法方法 用于向API发出请求的方法。 -c CALL,--CALL CALL用于查询API的URL。 -f FORMAT,--格式FORMAT 获取响应的格式。 -d、 --doc Say生成API的HTML文档(如果指定了,则不会考虑所有参数“-m”、“-c”和“-f”)。 -o输出,--输出OUTPUT 存储响应的文件。 -w WEBSERVER,--Web服务器WEBSERVER 用于部署Flask Web服务器以测试API的host:port。 -css css,--css css用于设置API文档样式的.css文件的路径(使用“-w”或“-d”和“-o”参数指定)。
#<field_name_1><field_value_1> #<field_name_1><field_value_2> #<字段名称3><字段值3> #<field_name_n><field_value_n> ...
#url<api_base>_pAPI的部分url_ #type api _节的类型_ #基础<base_url>_url基础_ #方法<get|post> #标题<api_title> #说明<api_description> #版本<版本号> #许可证<许可证> #联系人<contact_url>in表单[文本](url)_ #端点<sparql_endpoint_url> #addon<addon_file_name>_可选的附加python模块_
#url/api/v1 #类型api #底座 https://w3id.org/oc/wikidata网站 #方法站 #标题Wikidata REST API #description Wikidata的RAMOSE API实现 #版本0.0.2 #许可证本文件获得[知识共享署名4.0国际许可证]许可( https://creativecommons.org/licenses/by/4.0/legalcode ),而REST API本身是使用[RAMOSE]创建的( https://github.com/opencitations/ramose ),[Silvio Peroni]创建的*Restful API Manager Over SPARQL Endpoints*( https://orcid.org/0000-0003-0530-4305 ),使用[ISC许可证]进行许可( https://opensource.org/licenses/ISC ). 此API返回的所有数据均在[知识共享公共领域专用(CC0)]下免费提供( https://creativecommons.org/publicdomain/zero/1.0/ ). #联系人[ contact@opencitations.net ](邮寄至: contact@opencitations.net ) #端点 https://query.wikidata.org/sparql #加载项test_addon
#url<operation_url>{var}_partial操作url和变量名_ #type operation _节的类型_ #输入变量的可选验证器_ #用于插件文件中定义的预处理的预处理方法_ #插件文件中定义的后处理的后处理方法_ #方法<get|post> #描述<操作描述> #调用<示例请求调用> #field_type<var_type_list>_list of(SPARQL查询)变量及其类型_ #output_json<示例json响应> #sparql<sparql_query>_sparql查询将在端点上执行_
#url/metadata/{dois} #类型操作 #dois str(\“?10\..+[^_\”]((__|\“\”)10\+ [^_])*\"?) #预处理上部(dois)-->split_dois(dois #后处理distinct() #方法get #description此操作检索由输入DOI标识的所有项目的元数据。 #调用/元数据/10.1108/jd-12-2013-0166_10.1038/nature12373 #field_type str(qid)str(author)datetime(year)str #输出json[ { “source_title”:“文档期刊”, “第”页:“253-277”, ... }, { “source_title”:“自然”, “第”页:“54-58”, ... } ] #sparql前缀wdt:< http://www.wikidata.org/prop/direct/ > 选择? 作者? 年? 标题? 源标题? 音量? 问题? 页面? 做什么? 参考? 引用计数? 齐德{ 价值观? doi{[[dois]]} ? 文章wdt:P356? doi。 绑定(过滤机(str(?article),“ http://www.wikidata.org/实体/ “)作为?qid)。 { 选择DISTINCT? 文章(GROUP_CONCAT(?cited_doi;separator=“;”)作为? 参考){ 价值观? doi{[[dois]]} ? 文章wdt:P356? doi。 可选{ ? 文章wdt:P2860? 引用。 可选{ ? 引用wdt:P356? 引用_日期。 } } }分组依据? 文章 } { 选择? 文章? doi(count(?doi)as? 引文计数){ 价值观? doi{[[dois]]} ? 文章wdt:P356? doi。 可选{?文章^wdt:P2860?其他} }分组依据? 文章? 国防部 } 可选{?文章编号:P1476?标题} 可选{ ? 文章编号:P577? 日期 绑定(SUBSTR(str(?date),0,5)as? 年) } 可选{?文章wdt:P1433/wdt:P2476?源_标题} 可选{?文章编号:P478?卷} 可选{?文章wdt:P433?问题} 可选{?文章wdt:P304?页面} { 选择? 文章? doi(GROUP_CONCAT(?a;separator=“;”)as? 作者){ 价值观? doi{[[dois]]} { 选择? 文章? 做什么? 一个{ 价值观? doi{[[dois]]} ? 文章wdt:P356? doi。 可选{ ? 文章wdt:P50? author_res。 ? author_res wdt:P735/wdt:P1705? 名称; wdt:P734/wdt:P1705? f _名称。 绑定(CONCAT(?f_name,“,”,?g_name)为? a) } }分组依据? 文章? 做什么? 按DESC订购(?a)} }分组依据? 文章? 国防部 } }极限1000
[ (“id”,“date”), (“my_id_1”,“my_id _1”),(日期时间(2018年3月2日),“2018-03-02”), ... ]
python-m ramose-s<conf_name>.hf-c'<api_base><api-operation_url>< 参数>'
#响应HTTP代码:<status_code> #正文:<response_content> #内容类型:<format>
python-m ramose-f<csv|json>-s<conf_name>.hf-c'<api_base><api_aperation_url>|<api_ base><api操作_url>< 参数>' python-m ramose-s<conf_name>.hf-c'<api_base><api_操作url>|<api=操作url>? format=<csv|json>'
python-m ramose-s<conf_name>.hf-c'<api_base><api-operation_url>< 参数>“-o”<文件名>< 格式>'
python-m ramose-s<conf_name>.hf-d-o<doc_name>.html
python-m分支-s<conf_name>.hf-w 127.0.0.1:8080
用于跟踪API调用的基本仪表板(位于 <主机>:<端口>/ ) API文档(可在 <host>:<port>/<api_base> )
curl-X GET--header“接受:<format>”“http://<host>:<port>/<api_base><operation_url>?<parameters>”
python-m ramose-s<conf_name>.hf-w 127.0.0.1:8080-css<path/to/file.css>
预处理查询的方法(如 #{var}(变量) 和 #预处理 ); 通过使用URL中指示的参数,与调用的操作相关的SPARQL查询( #斯巴克尔 ); 返回的各种行的所有类型的规范( #字段_类型 ); 对结果进行后处理的方法( #后处理 ); 应用过滤器删除、过滤、排序结果(参数); 删除在步骤3中添加的类型,以便准备好返回数据结构; 以用户请求的格式进行转换( 内容_类型 ).
api_manager=api管理器([“1_v1.hf”,“2_v1.hf”]) api_base_1=“…” api_base_2=“…” operation_url_1=“…” operation_url_2=“…” request=“…” call_1=“%s/%s/%s”%(api_base_1,operation_url_1,请求) call_2=“%s/%s/%s”%(api_base_2,operation_url_2,请求) op1=api管理器.get_op(call_1) 状态1,结果1,结果格式1=op1.exec() op2=api管理器.get_op(调用2) 状态2,结果2,结果格式2=op2.exec()
-
require=<field_name> :中具有空值的所有行 <字段名称> 从结果集中删除指定的-例如。 require=给定名称 删除中未指定任何字符串的所有行 给定名称 字段。 -
filter=<field_name>:<operator><value> :结果集中只保留符合的行。 参数 <操作> 不是强制性的。 如果 <操作> 未指定, <值> 被解释为正则表达式,否则通过指定的操作进行比较。 可能的运算符为“=”、“<”和“>”。 例如, filter=title:语义? 返回字段标题中包含字符串“semantic”或“semantics”的所有行,而 过滤器=日期:>2016-05 返回日期大于2016年5月的所有行。 -
排序=<顺序>(<field_name>) :按升序排序( <订单> 设置为 “asc” )或 下降 ( <订单> 设置为 “描述” )根据中的值对结果集中的行进行排序 <字段名称> 例如, sort=描述(日期) 根据字段日期中指定的值按降序对所有行进行排序。 -
format=格式类型 :以中指定的格式返回最终表 <格式_类型> 可以是任意一种 “csv” 或 “杰森” -例如。 格式=csv 以CSV格式返回最终表格。 此参数具有通过请求的“Accept”标头指定的类型的更高优先级。 因此,如果API请求的头指定 接受:text.csv 该请求的URL包括 格式=json ,最后一个表以JSON格式返回。 -
json=<操作类型>(“<分隔符>”,<字段>,<新字段_1>,<新建字段_2>,…) :如果请求返回JSON格式,请根据指定的规则转换最终JSON表的每一行。 如果 <操作类型> 设置为 “数组” ,与字段名关联的字符串值 <字段> 通过以下方式拆分各个文本部分,将其转换为数组 <分隔符> 例如,考虑JSON表 [{“名字”:“Doe,John;Doe,Jane”},…] ,执行 数组(“;”,名称) 收益 [{“名字”:[“Doe,John”,“Doe、Jane”],…] 相反,如果 <操作类型 >设置为 “dict”(字典) ,与字段名关联的字符串值通过和关联新字段来拆分各种文本部分,从而转换为字典 <新字段_1> , <新字段_2> 等。 例如,考虑JSON表 [{“name”:“Doe,John”},…] ,执行 dict(“,”,name,fname,gname) 收益 [{“name”:{“fname”:“Doe”,“gname”:“John”},…] .
<api_operation_url>? require=doi&filter=date:>2015&sort=desc(date)。
测试/ramose.py 测试/测试.hf 测试/test_addon.hf
python-m ramose-s test.hf-c'/api/v1/metadata/10.1107/S0567740872003322'
#响应HTTP代码:200 #正文: [ { “作者”:“”, “年份”:“1972年”, “title”:“硫酸锡(II)的晶体结构”, “source_title”:“晶体学学报,B辑”, “卷”:“28”, “问题”:“3”, “页码”:“864-867”, “doi”:“10.1107/S0567740872003322”, “引用”:“”, “引文计数”:“1”, “qid”:“Q29013687” } ] #内容类型:application/json
python-m ramose-s test.hf-c’/api/v1/metadata/10.1107/S0567740872003322_10.1007/BF02020444? 格式=csv'
#响应HTTP代码:200 #正文: 作者、年份、标题、源标题、卷、期、页、doi、参考、引用计数、qid 1972年,《硫酸锡(II)的晶体结构》,《结晶学学报》。 B部分,28,3864-867,10.1107/S0567740872003322,,1,Q29013687 “Erdős,Paul;Hajnal,András”,1966年,关于图和集合系统的色数,匈牙利数学学报,17,1-2,61-99,10.1007/BF02020444,10.4153/CJM-1959-003-9,1,Q57259020 #内容类型:text/csv
python-m ramose-s test.hf-c’/api/v1/metadata/10.1107/S0567740872003322_10.1007/BF02020444? format=csv&sort=asc(年份)'
python-m ramose-s test.hf-c’/api/v1/metadata/10.1107/S0567740872003322_10.1007/BF02020444? format=json&sort=asc(year)&json=array(“;”,author)'
#响应HTTP代码:200 #正文: [ { “作者”:[ “Erdős,Paul”, “哈伊纳尔,安德拉斯” ], “年份”:“1966”, “title”:“关于图和集系统的色数”, “source_title”:“匈牙利数学学报”, “卷”:“17”, “问题”:“1-2”, “第”页:“61-99”, “doi”:“10.1007/BF02020444”, “参考”:“10.4153/CJM-1959-003-9”, “引文计数”:“1”, “qid”:“Q57259020” }, { “作者”:[], “年份”:“1972年”, “title”:“硫酸锡(II)的晶体结构”, “source_title”:“晶体学学报,B辑”, “音量”:“28”, “问题”:“3”, “第”页:“864-867”, “doi”:“10.1107/S0567740872003322”, “引用”:“”, “citation_count”:“1”, “qid”:“Q29013687” } ] #内容类型:application/json
python-m分支-s<conf_name>.hf-w 127.0.0.1:8080 curl-X GET--标题“接受:text/csv” http://localhost:8080/api/v1/metadata/10.1107/S0567740872003322_10.1007/BF02020444?format=csv "