This library is intended to generate a filtered record from a REST/Http metadata provider response
(to mine a REST response a.k.a. remi
). The code base was part of Semantic Cite and
is now being deployed as independent library. Supported providers are:
- CrossRef (DOI)
- VIAF
- PubMed (PMID and PMCID)
- OCLC (WorldCat)
- OpenLibrary (OLID, ISBN)
PHP 5.3 / HHVM 3.5 or later
The recommended installation method for this library is to add the dependency to your 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' );
- The
FilteredHttpResponseParser
(implementing theResponseParser
interface) returns a simplearray
filtered from a REST response. FilteredHttpResponseParser::doFilterResponseById
is not expected to make any input validation (in terms of format or range) for the requested response therefore the implementing class is responsible for an appropriate validation process.FilteredRecord::setRedactedFields
can be used to remove selected fields from the record.- It is further possible to invoke a
CachedCurlRequest
to avoid repeated requests to the same REST API url.
If you want to contribute work to the project please subscribe to the developers mailing list and have a look at the contribution guidelinee. A list of people who have made contributions in the past can be found here.
The library provides unit tests that covers the core-functionality normally run by the continues integration platform. Tests can also be executed manually using the composer phpunit
command from the root directory.
- 0.4.0 (2017-05-13)
- Changed HTTP to HTTPS for Ncbi resources
- 0.3.0 (2016-09-21)
- Added some additional fields
- 0.2.0 (2015-09-25)
- Changed
ResponseParser
interface to clarify method names
- Changed
- 0.1.0 (2015-08-03) Initial release
- Added
ResponseParser
interface - Added
FilteredHttpResponseParserFactory
to provide access to CrossRef, VIAF, PubMed, OCLC, and OpenLibrary REST API
- Added