Skip to content

Releases: jfinkels/flask-restless

1.0.0b1

14 Apr 17:39
1.0.0b1
Compare
Choose a tag to compare

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

14 Apr 17:50
0.17.0
Compare
Choose a tag to compare
  • 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

14 Apr 17:52
0.16.0
Compare
Choose a tag to compare
  • #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

14 Apr 18:13
0.15.1
Compare
Choose a tag to compare
  • #367: catch IntegrityError, DataError, and
    ProgrammingError exceptions in all view methods.
  • #374: import sqlalchemy.Column from sqlalchemy directly,
    instead of sqlalchemy.sql.schema

0.15.0

14 Apr 18:16
0.15.0
Compare
Choose a tag to compare
  • #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

14 Apr 18:17
0.14.2
Compare
Choose a tag to compare
  • #351, #355: fixes bug in getting related models from a model with hybrid
    properties.

0.14.1

14 Apr 18:19
Compare
Choose a tag to compare
  • #210: lists some related projects in the documentation.
  • #347: adds automated build testing for PyPy 3.
  • #354: renames is_deleted to was_deleted when providing keyword
    arguments to postprocessor for DELETE method in order to match
    documentation.

0.14.0

14 Apr 18:21
0.14.0
Compare
Choose a tag to compare
  • 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 return 204 if
    something is actually deleted.
  • #325: support null inside has 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

14 Apr 18:24
0.13.1
Compare
Choose a tag to compare
  • #304: fixes mimerender bug due to how Python 3.4 handles decorators.

0.13.0

14 Apr 18:26
0.13.0
Compare
Choose a tag to compare
  • 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
    for return 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 and PATCH 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 and ProgrammingError 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.