NAME
Hypothesis::API - Wrapper for the hypothes.is web (HTTP) API.
VERSION
Version 0.03
SYNOPSIS
A Perl wrapper and utility functions for the hypothes.is web (HTTP) API.
Create a hypothes.is object.
use Hypothesis::API;
my $H = Hypothesis::API->new();
# or if user-specific actions without login are needed (no known uses yet):
my $H = Hypothesis::API->new($username);
# or if login is needed (usually for annotator-store alterations)
my $H = Hypothesis::API->new($username, $password);
Login-required functionality:
$H->login;
my $payload = {
"uri" => 'http://my.favorite.edu/doc.html',
"text" => "testing create in hypothes.is API"
};
my $id = $H->create($payload);
$H->delete_id($id);
Search functionality (no login needed):
my $annotation = $H->read_id($id);
die if ($annotation->{'id'} ne $id);
my $page_size = 20;
my $iter = $H->search({limit => 100}, $page_size);
my @annotations;
while ( my $item = $iter->() ) {
push @annotations, $item;
}
EXPORT
Currently nothing.
SUBROUTINES/METHODS
create(\%payload)
Generalized interface to POST /api/annotations
In the simplest form, creates an annotation $payload->{'text'} at $payload->{'uri'}. For more sophisticated usage please see the hypothes.is API documentation.
Returns annotation id if created or HTTP status code otherwise.
delete_id($id)
Interface to DELETE /api/annotations/<id>
Given an annotation id, returns a boolean value indicating whether or not the annotation for that id has been successfully delete (1 = yes, 0 = no);
login
Proceeds to login; on success retrieves and stores CSRF and bearer tokens.
read_id($id)
Interface to GET /api/annotations/<id>
Returns the annotation for a given annotation id if id is defined or nonempty. Otherwise (in an effort to remain well-typed) returns the first annotation on the list returned from hypothes.is. At the time of this writing, this functionality of empty 'search' and 'read' requests are nearly identical (aside from the outer container) in the HTTP API, but in this Perl API, 'read' returns a scalar value and 'search' returns an array.
search(\%query, $page_size)
Generalized interface to GET /api/search
Generalized query function.
query is a hash ref with the following optional keys as defined in the hypothes.is HTTP API: * limit * offset * uri * text * quote * user
page_size is an additional parameter related to $query->limit and $query->offset, which specifies the number of annotations to fetch at a time, but does not override the spirit of either of the $query parameters.
AUTHOR
Brandon E. Barker, <brandon.barker at cornell.edu>
Created 06/2015
Licensed under the Apache License, Version 2.0 (the "Apache License"); also licensed under the Artistic License 2.0 (the "Artistic License"). you may not use this file except in compliance with one of these two licenses. You may obtain a copy of the Apache License at
http://www.apache.org/licenses/LICENSE-2.0
Alternatively a copy of the Apache License should be available in the LICENSE-2.0.txt file found in this source code repository.
You may obtain a copy of the Artistic License at
http://www.perlfoundation.org/artistic_license_2_0
Alternatively a copy of the Artistic License should be available in the artistic-2_0.txt file found in this source code repository.
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the Apache License or Artistic License for the specific language governing permissions and limitations under the licenses.
BUGS
Please report any bugs or feature requests at https://github.com/bbarker/Hypothesis-API/issues. Alternatively, you may send them to bug-hypothesis-api at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Hypothesis-API, but this is not preferred. In either case, I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
REPOSITORY
https://github.com/bbarker/Hypothesis-API
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Hypothesis::API
You can also look for information at:
RT: CPAN's request tracker (report bugs here)
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
ACKNOWLEDGEMENTS
We are thankful for support from the Alfred P. Sloan Foundation.