Revision 8f76125207e209353b976b24d8a7a62c24ab6bf7 authored by Jim Allman on 06 August 2015, 20:43:03 UTC, committed by Jim Allman on 06 August 2015, 20:43:03 UTC
For now, this will return complete JSON for all collections in the
current (local) docstore. But we could also emulate the searching
behavior in the study API.
1 parent 95a4793
Raw File
README.md
# The Open Tree Of Life API

[![Build Status](https://secure.travis-ci.org/OpenTreeOfLife/api.opentreeoflife.org.png)](http://travis-ci.org/OpenTreeOfLife/api.opentreeoflife.org)

This repository holds the code that runs The Open Tree Of Life API, which talks
to the backend datastore [phylesystem](https://github.com/OpenTreeOfLife/phylesystem).

# Introduction

This repo uses `peyotl` to interact with a copy of the phylesystem data on a server.
The code here provides a web services API to that data store. 
The best description of the phylesystem is in [our preprint](http://biorxiv.org/content/early/2015/01/16/013862).

See [docs/](https://github.com/OpenTreeOfLife/api.opentreeoflife.org/blob/master/docs/) for examples of how to use the API with ```curl```.


# Installation

There are a dependencies installable from pypi using pip, and the open
tree of life client-side python library is also used on the server side
for handling some aspects of NexSON.

    $ pip install -r requirements.txt
    $ cd ..

The first time you run, you'll need to:

    $ git clone https://github.com/OpenTreeOfLife/peyotl.git
    $ cd peyotl
    $ pip install -r requirements.txt
    $ python setup.py develop

subsequently changing to the <code>peyotl</code> directory and running

    $ git pull origin master

should be sufficient to get the latest changes.

# Configuration

    $ cp private/config.exampl private/config

then open private/config in a text editor and tweak it. 

  * `repo_parent` should be a file path which holds 1 or more phyleystem-# repositories
with the data.

  * `git_ssh` and `pkey`


### Logging configuration

The behavior of the log for functions run from with a request is determined by the config
file. Specifically, the 

    [logging]
    level = debug
    filepath = /tmp/my-api.log
    formatter = rich

section of that file.

If you are developer of the phylesystem-api, and you want to see logging for functions
that are not called in the context of a request, you can use the environmental variables:

  * `OT_API_LOG_FILE_PATH` filepath of log file (StreamHandler if omitted)
  * `OT_API_LOGGING_LEVEL` (NotSet, debug, info, warning, error, or critical)
  * `OT_API_LOGGING_FORMAT` "rich", "simple" or "None" (None is default)

# Deploying

This git repository is meant to be a "web2py application", so you need to
create a symlink in ```$WEB2PY_ROOT/applications``` to the API repo directory:

   cd $WEB2PY_ROOT/application
   # this will make the app available under /api
   ln -sf /dir/with/api.opentreeoflife.org api

# Using the API from the command-line

See [docs/](https://github.com/OpenTreeOfLife/api.opentreeoflife.org/blob/master/docs/) for examples of how to use the API with ```curl```.

# Using the API from Python

See [peyotl](https://github.com/OpenTreeOfLife/peyotl) has wrappers for accessing phylesystem web services.
See the [peyotl wiki](https://github.com/OpenTreeOfLife/peyotl/wiki) for details.

# Authors

See the CREDITS file
back to top