coreapidocs

Document APIs with CoreAPI.


License
BSD-3-Clause
Install
pip install coreapidocs==0.0.2

Documentation

coreapidocs travis pypi

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