Releases: jfinkels/flask-restless
Releases · jfinkels/flask-restless
1.0.0b1
This is a beta release; these changes will appear in the 1.0.0 release.
- #255 adds support for filtering by PostgreSQL network operators.
- #257: ensures additional attributes specified by the user actually exist on
the model. - #363 (partial solution): don't use
COUNT
on requests that don't require
pagination. - #404: Major overhaul of Flask-Restless to support JSON API.
- Increases minimum version requirement for
python-dateutil
to be strictly
greater than 2.2 to avoid parsing bug. - #331, #415: documents the importance of URL encoding when using the
like
operator to filter results. - #376: add a
not_like
operator for filter objects. - #431: adds a
url_prefix
keyword argument to the :class:APIManager
constructor, so one can specify a URL prefix once for all created APIs. - #449: roll back the session on any SQLAlchemy error, not just a few.
- #432, #462: alias relation names when sorting by multiple attributes on a
relationship. - #436, #453: use
__table__.name
instead of__tablename__
to infer the
collection name for the SQLAlchemy model. - #440, #475: uses the serialization function provided at the time of invoking
APIManager.create_api
to serialize each resource correctly, depending
on its type. - #474: include license files in built wheel for distribution.
- #501: allows empty string for
url_prefix
keyword argument to
APIManager.create_api
. - #476: use the primary key provided at the time of invoking
APIManager.create_api
to build resource urls in responses.
0.17.0
- Corrects bug to allow delayed initialization of multiple Flask applications.
- #167: allows custom serialization/deserialization functions.
- #198: allows arbitrary Boolean expressions in search query filters.
- #226: allows creating APIs before initializing the Flask application object.
- #274: adds the
url_for
function for computing URLs from models. - #379: improves datetime parsing in search requests.
- #398: fixes bug where DELETE_SINGLE processors were not actually used.
- #400: disallows excluding a primary key on a
POST
request.
0.16.0
- #237: allows bulk delete of model instances via the
allow_delete_many
keyword argument. - #313, #389:
APIManager.init_app
now can be correctly used to
initialize multiple Flask applications. - #327, #391: allows ordering searches by fields on related instances.
- #353: allows search queries to specify
group_by
directives. - #365: allows preprocessors to specify return values on
get
requests. - #385: makes the
include_methods
keywords argument respect model properties.
0.15.1
0.15.0
- #320: detect settable hybrid properties instead of raising an exception.
- #350: allows exclude/include columns to be specified as SQLAlchemy column
objects in addition to strings. - #356: rollback the SQLAlchemy session on a failed
patch
request. - #368: adds missing documentation on using custom queries (see
the "Custom queries" section of the documentation)
0.14.2
0.14.1
0.14.0
- Fixes bug where primary key specified by user was not being checked in some
POST
requests and some search queries. - #223: documents CORS example.
- #280: don't expose raw SQL in responses on database errors.
- #299: show error message if search query tests for
NULL
using comparison
operators. - #315: check for query object being
None
. - #324:
DELETE
should only return204
if
something is actually deleted. - #325: support
null
insidehas
search operators. - #328: enable automatic testing for Python 3.4.
- #333: enforce limit in
helpers.count
. - #338: catch validation exceptions when attempting to update relations.
- #339: use user-specified primary key on
PATCH
requests. - #344: correctly encodes Unicode fields in responses.
0.13.1
0.13.0
- Allows universal preprocessors or postprocessors; see "Universal processors"
section of the documentation. - Allows specifying which primary key to use when creating endpoint URLs.
- Requires SQLAlchemy version 0.8 or greater.
- #17: use Flask's
flask.Request.json
to parse incoming JSON requests. - #29: replace custom
jsonify_status_code
function with built-in support
forreturn jsonify(), status_code
style return statements (new in Flask
0.9). - #51: Use mimerender to render
dictionaries to JSON format. - #247: adds support for making
POST
requests to dictionary-like
association proxies. - #249: returns
404
if a search reveals no matching results. - #254: returns
404
if no related field exists for a request
with a related field in the URL. - #256: makes search parameters available to postprocessors for
GET
andPATCH
requests that access multiple
resources. - #263: Adds Python 3.3 support; drops Python 2.5 support.
- #267: Adds compatibility for legacy Microsoft Internet Explorer versions 8
and 9. - #270: allows the
query
attribute on models to be a callable. - #282: order responses by primary key if no order is specified.
- #284: catch
DataError
andProgrammingError
exceptions when bad data
are sent to the server. - #286: speed up paginated responses by using optimized count() function.
- #293: allows
sqlalchemy.Time
fields in JSON responses.