Batteries included framework for generating RESTful apis using Flask and SqlAlchemy.
Project description
flask-muck
Flask-Muck is a batteries-included framework for automatically generating RESTful APIs with Create, Read, Update and Delete (CRUD) endpoints in a Flask/SqlAlchemy application stack.
With Flask-Muck you don't have to worry about the CRUD.
from flask import Blueprint
from flask_muck.views import MuckApiView
import marshmallow as ma
from marshmallow import fields as mf
from myapp import db
class MyModel(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(255), nullable=False)
class MyModelSchema(ma.Schema):
id = mf.Integer(dump_only=True)
name = mf.String(required=True)
class MyModelApiView(MuckApiView):
api_name = "my-model"
Model = MyModel
ResponseSchema = MyModel
CreateSchema = MyModel
PatchSchema = MyModel
UpdateSchema = MyModel
searchable_columns = [MyModel.name]
blueprint = Blueprint("api", __name__, url_prefix="/api/")
MyModelApiView.add_crud_to_blueprint(blueprint)
# Available Endpoint
# CREATE | curl -X POST "/api/v1/my-model" -H "Content-Type: application/json" \-d "{\"name\": \"Ayla\"}"
# LIST ALL | curl -X GET "/api/v1/my-model" -d "Accept: application/json"
# LIST ALL PAGINATED | curl -X GET "/api/v1/my-model?limit=100&offset=50" -d "Accept: application/json"
# SEARCH | curl -X GET "/api/v1/my-model?search=ayla" -d "Accept: application/json"
# FILTER | curl -X GET "/api/v1/my-model?filter={\"name\": \"Ayla\"}" -d "Accept: application/json"
# SORT | curl -X GET "/api/v1/my-model?sort=name" -d "Accept: application/json"
# FETCH | curl -X GET "/api/v1/my-model/1" -d "Accept: application/json"
# UPDATE | curl -X PUT "/api/v1/my-model" -H "Content-Type: application/json" \-d "{\"name\": \"Ayla\"}"
# PATCH | curl -X PATCH "/api/v1/my-model" -H "Content-Type: application/json" \-d "{\"name\": \"Ayla\"}"
# DELETE | curl -X DELETE "/api/v1/my-model/1"
Install
pip install flask-muck
Flask-Muck supports Python >= 3.9
Documentation
Refer to the examples directory for more information on usage and available features.
Full documentation is coming soon.
License
MIT licensed. See the LICENSE file for more details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
flask_muck-0.0.3b0.tar.gz
(41.2 kB
view hashes)
Built Distribution
Close
Hashes for flask_muck-0.0.3b0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 317f2c9ba0d23040aaa3ee266a48e0909745a7136c5f9de679d2f96a6d24bfa8 |
|
MD5 | 52e8efeea4db71dc27af9c6836dfeb9a |
|
BLAKE2b-256 | 4a6ea2120382e47a8bc5591e0f186da30737cf54a9aed82f7cc60a1fde9dd9cd |