Changes in Flask-Restless-NG

Version 3.0.0 (2023-03-19):

  • Added support for SQLAlchemy 2.0

  • Minimum required SQLAlchemy version: 1.4.18

  • Minimum required Flask version: 2.2

  • Drop Functions API support

Version 2.5.1 (2023-03-15):

  • Restricted SQLAlchemy to <2.0. Support of 2.0 requires significant changes and will be a major release

Version 2.5.0 (2022-12-24):

  • Added support for X-Forwarded- headers (pagination links now use the original host/proto) (#38)

Version 2.4.0 (2022-11-11):

  • Clients can disable default sorting by using sort=0 query parameter

Version 2.3.1:

  • Fix for an incorrect error message

  • Returns 500 instead 400 response code in case of serialization errors in POST requests

  • Fix for pagination Flask-SQLAlchemy (now works also with 3.0+) (#37)

Version 2.3.0

  • Allow sorting of nested fields

Version 2.2.9

  • Do not erase type field from attributes (#31)

Version 2.2.8

  • Make sure that POST response contains actual values from the DB

Version 2.2.7

  • Fix Server Error for null relationship in POST (#29)

  • Allow session rollback in PATCH_RESOURCE, PATCH_RELATIONSHIP, POST_RELATIONSHIP post-processors (#28)

Version 2.2.6

  • Escape user input in error messages to prevent potential server-side cross-site scripting

  • ‘status’ field in error objects is now a string, as required by JSON API standard

  • Returns ‘400’ status if page number is provided but page size is 0

  • Returns ‘400’ status if unknown field was used for sorting

  • Allow rolling back the current session in POST_RESOURCE postprocessors (#28)

Version 2.2.5

  • Fix for #27 ‘relationship with secondary generates incorrect query’

Version 2.2.4

  • Do not log exceptions for user related errors (bad query, etc)

  • Update safe check for selectinload for `includes

  • Update SQLAlchemy dependency to 1.3.6+

Version 2.2.3

  • Add safe check for selectinload for includes

Version 2.2.2

  • Fix an incorrect selectinload query for models with custom select queries

Version 2.2.1

  • Minor improvements and fixes

Version 2.2.0

  • Serialize To-One relationships using foreign key, instead of trying to fetch the whole

relationship object from the database

Version 2.1.1

  • Only fetch primary keys from a database for relationships when no filtering is required

Version 2.1.0

  • Re-added FunctionsAPI until the next major release to let users to implement an alternative #23

Version 2.0.3

  • Fix: #26 - selectinload is broken for models that have primary keys other than ‘id’. Disabled until a new schema is


  • Make ‘primary_key’ optional again #25 (by @tanj)

Version 2.0.2

  • Fixed import for SQLAlchemy 1.3 #22

Version 2.0.0

Refactored fetching resource collections: - SQL query optimizations for ‘include’ and ‘relationship’ objects, using selectinload

(3x-5x performance improvement when tested on large datasets)

  • New parameter ‘include_links’ which controls should relationship objects include links. They are not required by JSON API, and disabling them significantly improves performance

  • New interfaces for Serializer and Deserializer classes.

  • APIManager requires Serializer/Deserializer objects instead of functions for serializer/deserializer options

Deprecations: - ‘single’ parameter is no longer supported - makes code complicated, is not defined in JSON API specs and can be easily

replicated on a client side

  • ‘group’ parameter is not longer supported - not defined in JSON API specifications, confusing and broken for PostrgeSQL

  • JSONP callbacks are no longer supported - please reach out if you have a use case for them

Version 1.0.6

  • Prevent redundant SQL queries during pagination and resource inclusion

Version 1.0.5

  • #16 - Fix: including child of empty relationship (by @sharky98)

Version 1.0.4

  • #15: Support SQLAlchemy 1.4.x

Version 1.0.2

  • #1, #13: Fix for relationship updates not being committed (by @sharky98)

  • #12: Fix for 500 when trying to include Null/None relationship

  • Added TSQuery operator (by @augustin)

Version 1.0.1

  • #4: id is an optional attribute as long as Model has a primary key

  • #6: Fix for flask_restless.views not being included in the installed package.

Version 1.0.0

  • Performance improvement: url_for() changed to build url locally instead of delegating it to Flask

  • This is the last release that is backward compatible with the original Flask-Restless API.

Version 0.0.2

  • New serializer (2-3x faster)

  • Added lru_cache to helpers to reduce number of recursive calls (better performance)

Version 0.0.1

  • Fixed 1.0+ compatibility

  • Fix for hybrid_property

Original Flask-Restless

You can find the full changelog in the original repo