Opinionated Flask services.
- Classify API endpoints according to an enumerated set of operations with well-defined naming conventions
- Handle errors consistently using a top-level error and nested sub-errrors
- Handle UUIDs as route path keys
- Protect endpoints with basic auth
- Use HAL JSON links to related resources to each other
- Use Swagger to publish endpoints for interoperability
- Automate generation of endpoints according to conventions:
- A health check API endpoint exposes service health
- RESTful endpoints provide CRUD operations on resources
- RESTful endpoints allows one resource to be related to another
- API discovery endpoints allow resource data to be discovered/spidered
- Swagger endpoints allow endpoint integration to be automated
Create a virtualenv
mkvirtualenv microcosm-flask
Install dependencies
pip install -U -e .
Run the tests
pytest
Lint the code:
NAME=microcosm_flask ./entrypoint.sh lint
NAME=microcosm_flask ./entrypoint.sh typehinting
- The object graph's
debug
andtesting
flags are propagated to the Flask application