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


Release history Release notifications

Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
flask-json-api-1.0.0.tar.gz (3.5 kB) Copy SHA256 hash SHA256 Source None Mar 24, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page