Examples

Example apps demonstrating usage.

Complete examples

Please see the examples directory in the repo for more examples, including complete project packages with application factory pattern and blueprints.

Minimal example without database

examples/minimal_nodb/main.py
from flask import Flask

from flask_api_framework import ApiFramework


app = Flask(__name__)
af = ApiFramework(app)


class Index(af.Read):
    def get_instance(self):
        return dict(value="minimal")


app.add_url_rule("/", view_func=Index.as_view("index"))

Minimal example with database

examples/minimal_db/main.py
from flask import Flask
from flask_marshmallow import Marshmallow
from flask_sqlalchemy import SQLAlchemy

from flask_api_framework import ApiFramework


app = Flask(__name__)
app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///:memory:"
db = SQLAlchemy(app)
af = ApiFramework(app, db)
ma = Marshmallow(app)


class Book(db.Model):
    id = db.Column(db.Integer(), primary_key=True)
    title = db.Column(db.String(100))


db.create_all()


class BookSchema(ma.SQLAlchemyAutoSchema):
    class Meta:
        model = Book
        sqla_session = db.session
        load_instance = True


class Books(af.Create, af.List):
    body_schema = BookSchema()

    def get_instances(self):
        return Book.query.all()


app.add_url_rule("/books", view_func=Books.as_view("index"))