Skip to main content

Build a REST API with Flask

Project description

Flask-RESTly

Build Status Latest version Python versions Coverage Status

Quick start

pip install flask-restly

By default flask-restly uses JSON serializer.

from flask import Flask
from flask_restly import FlaskRestly
from flask_restly.decorator import resource, get, delete


app = Flask(__name__)

rest = FlaskRestly(app)
rest.init_app(app)


@resource(name='employees')
class EmployeesResource:
    @get('/<id>')
    def get_employee(self, id):
        return dict(id=int(id))

    @get('/')
    def get_employees(self):
        return dict(entites=[
            dict(id=1),
            dict(id=2)
        ])

    @delete('/<id>')
    def delete_employee(self, **kwargs):
        return


with app.app_context():
    EmployeesResource()

if __name__ == "__main__":
    app.run(host='127.0.0.1', port=5001, debug=True)
$ python main.py
* Serving Flask app "main" (lazy loading)
* Environment: production
  WARNING: Do not use the development server in a production environment.
  Use a production WSGI server instead.
* Debug mode: on
* Restarting with stat
* Debugger is active!
* Debugger PIN: 210-167-642
* Running on http://127.0.0.1:5001/ (Press CTRL+C to quit)

Features

  • Decorators-based routing
  • JSON and Protobuf built-in serialization
  • Custom serializer support
  • Authorization decorators
  • Automatic REST-like response codes
  • API versioning

Todo

  • HATEOAS
  • Rate limits support
  • Caching helpers
  • ...and few more :)

Usage

Please see examples for more details.

Settings

Name Default value
RESTLY_SERIALIZER: <flask_restly.serializer.SerializerBase> flask_restly.serializer.json
RESTLY_API_PREFIX: <str> /api/rest
RESTLY_PROTOBUF_MIMETYPE: <str> application/x-protobuf

Docs

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

flask-restly-0.6.0.tar.gz (10.5 kB view hashes)

Uploaded Source

Built Distribution

flask_restly-0.6.0-py3-none-any.whl (15.3 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page