coreapidocs
Document APIs with CoreAPI.
Prerequisites
- Python (2.7, 3.3, 3.4, 3.5)
- Core API (Read More)
Installation
You can install coreapidocs
through pypi.
pip install coreapidocs
Development
Create the virtualenv and install the requirements.
virtualenv env
source env/bin/activate
pip install -r requirements.txt
You will need to pass an argument ie. document.json
.
python coreapidocs/example.py document.json
# Then go to: http://127.0.0.1:5000/
Usage
Below you can find an example Flask application. Using jinja2
you can pass the coreapidocs
template to your view.
import sys
import jinja2
from flask import Flask, abort, render_template
from coreapidocs.docs import Docs
app = Flask(__name__)
@app.route('/')
def docs():
"""
Generate the coreapidocs and serve them to roor.
Accepts one parameter with a filename (ie. document.json)
"""
if len(sys.argv) != 2:
abort(400, {"msg": "Missing file parameter ie. document.json"})
filename = sys.argv[-1]
try:
schema = open(filename, 'rb').read()
docs = Docs(schema)
except (IOError, OSError):
abort(400, {"msg": "No such file or directory - %s" % filename})
templates_loader = jinja2.PackageLoader('coreapidocs', 'templates')
template_env = jinja2.Environment(loader=templates_loader)
template = template_env.get_template('docs.html')
# FIXME: Figure out how to pas static files
return render_template(template, docs=docs.get_docs())
@app.route('/<path:path>')
def static_proxy(path):
"""
Serve static files.
"send_static_file" will guess the correct MIME type
"""
return app.send_static_file(path)
if __name__ == '__main__':
app.debug = True
app.run()
Tests
In order to run the tests you will have to run:
python runtests.py