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.4.tar.gz
(32.1 kB
view hashes)
Built Distribution
Close
Hashes for falcon_dbapi-1.2.4-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 451868f670800a59ae67eaa6b812648974cb216f7f81113df809427ccfb76ebb |
|
MD5 | 392d6c7c4beac1830a0b7d66d25a21a0 |
|
BLAKE2b-256 | b03f7d9d5c2aaf1f4b9d84e242631746579907f5aa587a5440ff2c07b104ed37 |