Skip to main content

:fire:flask-json-api:fire:: Flask boilerplate setup code for REST application/json API’s

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

Release files for flask-json-api 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for flask-json-api 1.0.0
File Size Uploaded
flask-json-api-1.0.0.tar.gz 3.5 kB Details

Release files / flask-json-api-1.0.0.tar.gz

Download URL flask-json-api-1.0.0.tar.gz
Size 3.5 kB
Tags Source
SHA-256 checksum
How to use checksums
4fc21069bc85ba1968c9fd36d2c8d4b1e0657568ed94735d07ef628e5d4fac2b
BLAKE2b-256 checksum
How to use checksums
f987d486b9b1381a896b77e196e097e37dfe6611c9ba5d805b6a6277adec6e3d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page