Skip to main content

The Flask JSON API package provides boilerplate code for setting up REST based apps.

Project description

The Flask JSON API package provides boilerplate code for setting up REST based apps written with Flask.

Installing flask-json-api

pip install flask-json-api

Using Flask JSON API

Using Flak JSON API is as easy as initiating it with the Flask app instance:

from flask import Flask

from flask_json_api import FlaskJsonApi

app = Flask(__name__)

flask_json_api = FlaskJsonApi(app)

How it works

This package requires the application/json content-type header, or else an HTTP error will be returned:

import requests

# providing the application/json content type will succeed
url = 'http://localhost:5000/api'
headers = {'Content-Type': 'application/json'}

r = requests.get(url, headers=headers)

assert r.status_code == 200

# not providing the application/json content type will fail
url = 'http://localhost:5000/api'

r = requests.get(url)

assert r.status_code == 415

Register expected and unexpected exception types:

Although all errors should be returned as JSON, you can register different exception types as:
  • Expected Errors - will return 400 http error code (and logged with WARNING level)

  • Unexpected Errors - will return 500 http error code (and logged with ERROR level)

class ExpectedError(Exception):
"""Expected error, such as Data Validation Error"""

class UnexpectedError(Exception):
    """Unexpected error, such as database is not accessible"""

flask_json_api.register_expected_exception(ExpectedError)
flask_json_api.register_unexpected_exception(UnexpectedError)

Whitelisting paths that do not require application/json

Whenever the flask.request.path starts with any of these exclude_paths, then the application/json header won’t be required.

flask_json_api.set_application_json_exclude_paths(exclude_paths=['/home'])

# Please note that if the exclude_paths will contain '/',
# then no path will require the application/json content-type

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-json-api-1.0.0.tar.gz (3.5 kB view hashes)

Uploaded Source

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