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 details)

Uploaded Source

File details

Details for the file flask-json-api-1.0.0.tar.gz.

File metadata

File hashes

Hashes for flask-json-api-1.0.0.tar.gz
Algorithm Hash digest
SHA256 4fc21069bc85ba1968c9fd36d2c8d4b1e0657568ed94735d07ef628e5d4fac2b
MD5 ba549df81c393363129f284010e3773d
BLAKE2b-256 f987d486b9b1381a896b77e196e097e37dfe6611c9ba5d805b6a6277adec6e3d

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