onoi/remi

一个小型库,用于从选定的元数据提供者中挖掘(解析)REST响应

0.4.0 2017-05-13 02:25 UTC

This package is auto-updated.

Last update: 2024-08-29 04:09:04 UTC


README

Build Status Code Coverage Scrutinizer Code Quality Latest Stable Version Packagist download count Dependency Status

这个库旨在从REST/Http元数据提供者响应中生成一个过滤后的记录(挖掘REST响应,即remi)。代码库曾是Semantic Cite的一部分,现在作为一个独立的库被部署。支持的提供者包括

  • CrossRef (DOI)
  • VIAF
  • PubMed (PMID和PMCID)
  • OCLC (WorldCat)
  • OpenLibrary (OLID, ISBN)

要求

PHP 5.3 / HHVM 3.5 或更高版本

安装

为此库推荐的安装方法是将其依赖项添加到您的composer.json文件中。

{
	"require": {
		"onoi/remi": "~0.4"
	}
}

使用

use Onoi\HttpRequest\HttpRequestFactory;
use Onoi\Remi\FilteredHttpResponseParserFactory;

$httpRequestFactory = new HttpRequestFactory()

$filteredHttpResponseParserFactory = new FilteredHttpResponseParserFactory(
	$httpRequestFactory->newCurlRequest()
);
$crossRefFilteredHttpResponseParser = $filteredHttpResponseParserFactory->newCrossRefFilteredHttpResponseParser(
	new FilteredRecord()
)

$crossRefFilteredHttpResponseParser->doFilterResponseById( '10.1126/science.1152662' );
$filteredRecord = new FilteredRecord();
$filteredRecord->setRedactedFields( array( 'pages', 'abstract' ) );

$pubMedFilteredHttpResponseParser = $filteredHttpResponseParserFactory->newNcbiPubMedFilteredHttpResponseParser(
	$filteredRecord
)

$pubMedFilteredHttpResponseParser->doFilterResponseById( '19782018' );
  • FilteredHttpResponseParser(实现ResponseParser接口)返回从REST响应中过滤出的简单数组
  • FilteredHttpResponseParser::doFilterResponseById不期望对请求的响应进行任何输入验证(就格式或范围而言),因此实现类负责进行适当的验证过程。
  • 可以使用FilteredRecord::setRedactedFields从记录中删除所选字段。
  • 还可以调用一个CachedCurlRequest以避免重复请求相同的REST API URL。

贡献和支持

如果您想为此项目贡献工作,请订阅开发人员邮件列表,并查看贡献指南。过去做出贡献的人的名单可以在这里找到。

测试

该库提供单元测试,覆盖了通常由持续集成平台运行的内核功能。也可以使用composer phpunit命令从根目录手动执行测试。

发行说明

  • 0.4.0 (2017-05-13)
    • 将Ncbi资源的HTTP更改为HTTPS
  • 0.3.0 (2016-09-21)
    • 添加了一些额外的字段
  • 0.2.0 (2015-09-25)
    • ResponseParser接口更改为澄清方法名称
  • 0.1.0 (2015-08-03) 首次发布
    • 添加了ResponseParser接口
    • 添加了FilteredHttpResponseParserFactory,以提供对CrossRef、VIAF、PubMed、OCLC和OpenLibrary REST API的访问

许可

GNU通用公共许可证2.0或更高版本.