Skip to main content

Thin wrapper around the SciELO Manager RESTful API.

Project description

scieloapi.py

Thin wrapper around the SciELO Manager RESTful API.

[![Build Status](https://travis-ci.org/scieloorg/scieloapi.py.png?branch=master)](https://travis-ci.org/scieloorg/scieloapi.py)

Usage example:

import scieloapi

client = scieloapi.Client(‘some.user’, ‘some.api_key’)

for journal in client.journals.all():
print journal[‘id’], journal[‘title’]

How to install

You can install it via pip, directly from the github repo:

pip install -e git+git://github.com/scieloorg/scieloapi.py.git#egg=scieloapi

Basics

When a Client instance is initialized, the process automaticaly instrospects the API server in order to make available only the endpoints part of the specified API version. The API version may be passed as keyword argument version when creating the Client instance. If ommited, the highest version is used.

>>> client = scieloapi.Client('some.user', 'some.api_key', api_uri='http://manager.scielo.org/api/', version='v1')

Listing available endpoints:

>>> client.endpoints
[u'pressreleases', u'users', u'sections', u'sponsors', u'collections', u'changes', u'apressreleases', u'uselicenses', u'journals', u'issues']
>>>

Listing all items of an endpoint:

>>> for journal in client.journals.all(): print journal['title']
...
Acta Médica Costarricense
Acta Pediátrica Costarricense
Actualidades Investigativas en Educación
Adolescencia y Salud
Agronomía Costarricense
Agronomía Mesoamericana
Annali dell'Istituto Superiore di Sanità
Arquivos em Odontologia
Brazilian Journal of Oral Sciences
Bulletin of the World Health Organization
Cadernos de Saúde Pública
>>>

Listing items matching some params:

>>> for journal in client.journals.filter(collection='saude-publica'): print journal['title']
...
Annali dell'Istituto Superiore di Sanità
Bulletin of the World Health Organization
Cadernos de Saúde Pública
Ciência & Saúde Coletiva
Gaceta Sanitaria
MEDICC Review
Revista Brasileira de Epidemiologia
Revista Cubana de Salud Pública
Revista de Salud Pública
>>>

Getting a specific item:

>>> journal = client.journals.get(62)
>>> journal['title']
u'Acta M\xe9dica Costarricense'
>>>

Use license

This project is licensed under FreeBSD 2-clause. See LICENSE for more details.

History

0.3 (2013-08-02)

  • Added more unit tests (Now at 73% of code coverage).
  • Minor adjusts at setup.py installation script.
  • New exceptions to represent http status codes.
  • Better documentation at http://docs.scielo.org/projects/scieloapipy/.

0.2 (2013-07-26)

  • Slumber dependency was removed. The module scieloapi.httpbroker was created to deal with http requests and responses.
  • Better test reports now using Nosetests + coverage.
  • Added method Client.fetch_relations to fetch all first-level relations of a document and replace the value by the full document.

Project details


Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page