Falcon API resources for databases
Project description
Falcon API resources for databases. See the fulldocumentation <http://falcon-api.readthedocs.io>.
Installation
Run:
pip install falcon_dbapi
Packages required for specific databases:
PostgreSQL or other RDBMS: SQLAlchemy, alchemyjsonschema
ElasticSearch: elasticsearch-dsl
MongoDB: mongoengine
Usage
Below is an example app with:
an index of available resources
automapped tables
basic authentication using a token
import falcon
from falcon_dbapi.middlewares.auth_middleware import AuthMiddleware
from falcon_dbapi.middlewares.json_middleware import RequireJSON, JSONTranslator, JsonError
from falcon_dbapi.resources.index import IndexResource
from falcon_dbapi.resources.sqlalchemy import CollectionResource, SingleResource
from sqlalchemy.ext.automap import automap_base
from sqlalchemy import create_engine
from wsgiref import simple_server
engine = create_engine("sqlite:///mydatabase.db")
Base = automap_base()
Base.prepare(engine, reflect=True)
app = application = falcon.API(
middleware=[
AuthMiddleware('/', {'project-id': 'token-value'}),
RequireJSON(),
JSONTranslator(),
]
)
for name, model in Base.classes.items():
app.add_route('/' + name, CollectionResource(model, engine)),
app.add_route('/' + name + '/{id}', SingleResource(model, engine)),
app.add_route('/', IndexResource(['/' + name for name in Base.classes.keys()]))
app.add_error_handler(Exception, JsonError.handle)
simple_server.make_server('localhost', 8888, app).serve_forever()
Test it using httpie:
http http://localhost:8888/
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
falcon_dbapi-1.2.2.tar.gz
(31.9 kB
view hashes)
Built Distribution
Close
Hashes for falcon_dbapi-1.2.2-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b10a2194ca48d9b391e61cfb8f2edb6faacf4dadc00a0210645f03aa119f700 |
|
MD5 | 7a6b9b516c6369c962b7bedf93211379 |
|
BLAKE2b-256 | 4e234549312c12fede540a7528f33e0c656402fe8e1008bdc8e408cb8d6f4f5f |