Flask + marshmallow for beautiful APIs
Project description
Flask + marshmallow for beautiful APIs
Flask-Marshmallow is a thin integration layer for Flask and marshmallow that adds additional features to marshmallow, including URL and Hyperlinks fields for HATEOAS-ready APIs.
from myapp.database import Model, Integer, String, DateTime
from flask_marshmallow import Serializer, fields, pprint
class User(Model):
id = Column(Integer)
email = Column(String)
password = Column(String)
date_created = Column(DateTime, auto_now_add=True)
class UserMarshal(Serializer):
class Meta:
# Fields to expose
fields = ('email', 'date_created', '_links')
_links = fields.Hyperlinks({
# Same params as Flask.url_for, but args can be attribute names
# surrounded by < >
'self': fields.URL('author_detail', id='<id>'),
'collection': fields.URL('authors')
})
user = User(email='fred@queen.com', password='secret')
user.save()
serialized = UserMarshal(user)
pprint(serialized.data)
# {
# "email": "fred@queen.com",
# "date_created": "Fri, 25 Apr 2014 06:02:56 -0000",
# "_links": {
# "self": "/api/authors/42",
# "collection": "/api/authors/"
# }
# }
Get it now
pip install flask-marshmallow
http://flask-marshmallow.readthedocs.org/
License
MIT licensed. See the bundled LICENSE file for more details.
Changelog
0.1.0-pre (unreleased)
First release.
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
Built Distribution
Close
Hashes for flask_marshmallow-0.1.0-py2.py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ad5fce00e57293cfa240b75b275fc487ac3705bfe82e75f43e310ccbefd77517 |
|
MD5 | 7cfef46a96f9c937906390044605ab5a |
|
BLAKE2b-256 | 7e7a56e7775fcb96a5d6726dabdca7a3eb778bcb0ecfca78989431853818d41b |