Intelligent APIs for a more connected web.
A BD2K/Network-of-BioThings project.
SmartAPI allows API publishers to annotate their services and input/output parameters in a structured and identifiable manner, based on a standard JSON-LD format for biomedical APIs and services. By indexing and visualizing these descriptions as Linked Data in a MongoDB back-end, researchers can seamlessly identify the services that consume or return desired parameters, and automatically compose services in workflows that yield new insights.
Presentation: http://bit.ly/smartAPIslides
Roadmap: https://docs.google.com/document/d/1mEQs5NuOr23p8iMfNkF01Kxbf8iJz63SE43D9DSpG_o/edit?usp=sharing
- Install Elasticsearch at localhost:9200 (follow this instruction)
- Clone this repo
git clone https://github.com/SmartAPI/smartAPI.git
- Install system packages (on Ubuntu, for example)
sudo apt install libcurl4-openssl-dev libssl-dev aws-cli
- Change directory to SmartAPI source files
cd smartAPI/src
- Install python dependencies
pip install -r requirements.txt
- Create a config_key.py under src with
Follow this instruction to create your Github Client ID and Secret.
COOKIE_SECRET = '<Any Random String>' GITHUB_CLIENT_ID = '<your Github application Client ID>' GITHUB_CLIENT_SECRET = '<your Github application Client Secret>'
- Create index in Python shell:
Or import some API data from a saved dump file. Contact us for the dump file.
from api import es es.create_index()
And replace the name of the file in the command with the backup file name.from api import es esq = es.ESQuery() esq.restore_all("smartapi_oas3_backup_20190128.json", es.ES_INDEX_NAME)
- Run dev server
python index.py --debug
You should now able to access API dev server at http://localhost:8000