Basic Usage
Lets start with a basic usage example and illustrate the core features Flask Atomic offers.
Architect Blueprint
The Architect Blueprint is itself yes, you guessed it a Flask Blueprint. It looks, smells and sounds just the same as a normal Flask Blueprint but does a little magic for you.
All that's needed to start is a SQLAlchemy Model to get things started.
class SomeModel(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.Datetime, default=datetime.now())
username = db.Column(db.String(50))
alias = db.Column(db.String(50))
When we have models like this we typically will have a GET route, POST route maybe DELETE and PUT depending on the application. Typically, these routes will have similar behaviours across different application: define a route, take some data, create a model, save to database.
from flask_atomic import Architect
from .models import SomeModel
monitor_blueprint = Architect(SomeModel)
app = Flask(__name__)
app.register_blueprint(monitor_blueprint, url_prefix='example')
if __name__ == '__main__':
app.run()
What has been created?
:Route | Method | Comment |
---|---|---|
/example | GET | Index endpoint for the model, fetches all data. |
/example/ |
GET | Get one endpoint. Defaults to model primary key. |
/example/ |
GET | Get one endpoint, returning field. Can be relationships. |
/example | POST | Post endpoint that allows for creation of new records. |
/example/ |
DELETE | Delete endpoint, defaults to deleting |
/example/ |
PUT | Put endpoint that allows for making modifications to a record. |
/example/ |
HEAD | Simply checks a record exists and returns HTTP 200 if so, 404 if not. |
Making a curl request to your API and see it in action:
curl localhost:5000/example
Using the example model above, lets check posting new records:
curl --header "Content-Type: application/json" \
--request POST \
--data '{"name":"xyz","username":"xyz","alias":"xyz}' \
http://localhost:5000/example