The API is written in Python, utilizing APIFlask as the web application framework (with Flask serving as the backend for APIFlask). The API is described in the code via Marshmallow Dataclasses
SQLAlchemy is the ORM, with migrations driven by Alembic. pydantic is used in many spots for parsing data (and often serializing it to json or plain dictionaries). Where pydantic is not used, plain Python dataclasses are generally preferred.
- OpenAPI Specification
- API Flask (source code)
- SQLAlchemy (source code)
- Alembic (source code)
- pydantic (source code)
- poetry - Python dependency management
- TODO - redo this
Authentication methods are defined in the security_scheme
config in
app.py
. A particular security scheme is enabled for a route via a
security
block on that route.
Flask runs the authentication method specified in api_key_auth.py
before passing the request to the route handler.
In the api_key
security scheme, the X-Auth
points to the
function that is run to do the authentication.
n/a - Specific user authorization is not yet implemented for this API.
n/a - Database diagrams are not yet available for this application.