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 and authentication decorators
  • Automatic REST-like response codes
  • API versioning
  • Rating limits

Todo

  • HATEOAS/HAL

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
RESTLY_RATE_LIMIT_REQUESTS_AMOUNT: <int> 100
RESTLY_RATE_LIMIT_WINDOW_SECONDS: <int> 60

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-1.1.0.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

flask_restly-1.1.0-py3-none-any.whl (17.2 kB view details)

Uploaded Python 3

File details

Details for the file flask-restly-1.1.0.tar.gz.

File metadata

  • Download URL: flask-restly-1.1.0.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3

File hashes

Hashes for flask-restly-1.1.0.tar.gz
Algorithm Hash digest
SHA256 6afb633558794f030e0c87d1c7eb8cc4b93cbe79a3d2fe2cdb6f87ec69e457b5
MD5 c7d84682aab6de9529f5f62686f417c9
BLAKE2b-256 575367531c77f1d183d021b753577d33c1e716daed3d442697da6bd3d080ab1c

See more details on using hashes here.

File details

Details for the file flask_restly-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: flask_restly-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 17.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/40.8.0 requests-toolbelt/0.9.1 tqdm/4.41.1 CPython/3.7.3

File hashes

Hashes for flask_restly-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b356b0586a6a16027e679fee6fe3e5c8218fa1b8110adcaec0d16a99a645bc38
MD5 e3cdef312f50d0fca668342cbb852a0d
BLAKE2b-256 845fd0a1eac341dfaa59081b3a845bf785639cf768935d479ff95b47c41dd2a0

See more details on using hashes here.

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