/ODM2RESTfulWebServices

A Python RESTful web service inteface for accessing data in an ODM2 database via Django rest swagger APIs.

Primary LanguagePLpgSQLBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

ODM2 RESTful Web Services

Build status

A Python RESTful web service inteface for accessing data in an ODM2 database via Django rest swagger APIs.

NOTE: Currently this repository is under heavy development, a working version is not guaranteed at any point. We will start creating tagged releases soon; once available, please use the latest tagged release for stability.

Development Installation

  1. Clone both ODM2PythonAPI repository and ODM2RESTfulWebServices repository.

    $ git clone https://github.com/ODM2/ODM2RESTfulWebServices.git odm2restapi
    $ git clone https://github.com/ODM2/ODM2PythonAPI.git odm2pythonapi
  2. Create a new conda environment from the odm2restapi environment file.

    $ cd odm2restapi/
    $ git checkout odm2rest_1_0 # This is the development branch, all PR's must merge to here!
    $ conda env create --file environment.yml
  3. Install odm2pythonapi master into the environment

    $ source activate odm2restenv
    $ pip install -e ../odm2pythonapi/ # Assuming you're still under odm2restapi folder
  4. Install npm and nodejs, which will be used to install the swagger editor.

  5. Get swagger editor for a nice interface and syntax checking when editing the swagger yaml file.

    $ cd odm2restapi/
    $ npm init -y
    $ sudo npm install -g swagger
    $ swagger project edit # This will open a new browser

Legacy prototype version

The first version of the ODM2 RESTful API was developed in late 2015 and early 2016 as a prototype. That legacy code base is no longer used, and the current code base was developed from scratch (though guided by some lessons learned). The legacy code has been archived at the odm2rest_legacy branch. See also relevant discussions on that branch and subsequent architectural decisions at issue 11.

Credits

This work was supported by National Science Foundation Grants EAR-1224638 and ACI-1339834. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.