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.1.tar.gz
(31.9 kB
view hashes)
Built Distribution
Close
Hashes for falcon_dbapi-1.2.1-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05ee0a4cbf63a9985e24791169934b8aeaa3d725f7dc3599dce042bd9d387804 |
|
MD5 | bedb0100428878aafe9059c2726ac062 |
|
BLAKE2b-256 | d1026ef60f403dd630497dd2940c796c4aa21c96e9f06e5a8469c67cebb92f4e |