This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (pypi.python.org).
Help us improve Python packaging - Donate today!

Document APIs with CoreAPI.

Project Description
coreapidocs [![travis][travis-image]][travis-url] [![pypi][pypi-image]][pypi-url]
===
Document APIs with CoreAPI.

### Prerequisites

- Python (2.7, 3.3, 3.4, 3.5)
- Core API ([Read More](http://www.coreapi.org/))


### Installation
You can install `coreapidocs` through pypi.

pip install coreapidocs


### Usage
You will have to pass a `.json` document to initialize the docs.

```python
from coreapidocs.docs import Docs

try:
schema = open(filename, 'rb').read()
docs = Docs(schema)
except (IOError, OSError):
abort(400, {"msg": "No such file or directory - %s" % filename})
```

Then you can simply pass the `docs` variable to your template (ie. Flask):

```python
return render_template('home.html', docs=docs.get_docs())
```

For more information view the source of [example.py](coreapidocs/example.py).


### 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.

```python
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


[travis-image]: https://travis-ci.org/ekonstantinidis/coreapidocs.svg
[travis-url]: https://travis-ci.org/ekonstantinidis/coreapidocs

[pypi-image]: https://badge.fury.io/py/coreapidocs.svg
[pypi-url]: https://pypi.python.org/pypi/coreapidocs/
Release History

Release History

This version
History Node

0.0.2

History Node

0.0.1

Download Files

Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

File Name & Checksum SHA256 Checksum Help Version File Type Upload Date
coreapidocs-0.0.2.tar.gz (6.4 kB) Copy SHA256 Checksum SHA256 Source Apr 19, 2016

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting