SQLAlchemy Models - flarchitect
Description: flarchitect builds APIs directly from your SQLAlchemy models. To expose a model: Inherit from your configured base model., Add a Meta inner class with at least tag and tag_group attributes for docu...

Hide navigation sidebar
Hide table of contents sidebar
Skip to content
Back to top
View this page
Toggle table of contents sidebar

# SQLAlchemy Models

`flarchitect` builds APIs directly from your SQLAlchemy models. To expose a model:

- Inherit from your configured base model.

- Add a `Meta` inner class with at least `tag` and `tag_group` attributes for documentation grouping.

- Define your fields and relationships as you normally would; nested relationships are handled automatically.

Example:

    class Author(BaseModel):
        __tablename__ = "author"

        class Meta:
            tag = "Author"
            tag_group = "People/Companies"

        id = db.Column(db.Integer, primary_key=True)
        name = db.Column(db.String(80))

That’s all that’s required to make the model available through the generated API.

## Dump types

`flarchitect` can serialize model responses in different formats, controlled by `API_SERIALIZATION_TYPE` or `Meta.serialization_type`. Supported dump types are:

- `url` (default) – represent related objects only by their URL links.

- `json` – embed related objects as JSON objects.

- `dynamic` – choose between `url` and `json` using the `dump` query parameter.

- `hybrid` – include both URL links and embedded JSON for related objects.

Example:

    class Config:
        API_SERIALIZATION_TYPE = "json"

Clients can override `dynamic` dumps per request with `?dump=url` or `?dump=json`.