Flask Restless Versions Save

NO LONGER MAINTAINED - A Flask extension for creating simple ReSTful JSON APIs from SQLAlchemy models.

0.10.0

8 years ago
  • #2: adds basic GET access to one level of relationship depth for models.
  • #113: interpret empty strings for date fields as None objects.
  • #115: use Python's built-in assert statements for testing
  • #128: allow disjunctions when filtering search queries.
  • #130: documentation and examples now more clearly show search examples.
  • #135: added support for hybrid properties.
  • #139: remove custom code for authentication in favor of user-defined pre- and postprocessors (this supercedes the fix from #154`).
  • #141: relax requirement for version of python-dateutil to be not equal to 2.0 if using Python version 2.6 or 2.7.
  • #146: preprocessors now really execute before other code.
  • #148: adds support for SQLAlchemy association proxies.
  • #154 (this fix is irrelevant due to #139): authentication function now may raise an exception instead of just returning a Boolean.
  • #157: POST requests now receive a response containing all fields of the created instance.
  • #162: allow pre- and postprocessors to indicate that no change has occurred.
  • #164, #172, #173: PATCH requests update fields on related instances.
  • #165: fixed bug in automatic exposing of URLs for related instances.
  • #170: respond with correct HTTP status codes when a query for a single instance results in none or multiple instances.
  • #174: allow dynamically loaded relationships for automatically exposed URLs of related instances.
  • #176: get model attribute instead of column name when getting name of primary key.
  • #182: allow POST requests that set hybrid properties.
  • #152: adds some basic server-side logging for exceptions raised by views.

0.10.1

8 years ago
  • #115: change assertEqual() methods to assert statements in tests.
  • #184, #186: Switch to nose for testing.
  • #197: documents technique for adding filters in processors when there are none initially.

0.11.0

8 years ago
  • Requests that require a body but don't have Content-Type: application/json will cause a 415 response.
  • Responses now have Content-Type: application/json.
  • #180: allow more expressive has and any searches.
  • #195: convert UUID objects to strings when converting an instance of a model to a dictionary.
  • #202: allow setting hybrid properties with expressions and setters.
  • #203: adds the include_methods keyword argument to APIManager.create_api, which allows JSON responses to include the result of calling arbitrary methods of instances of models.
  • #204, #205: allow parameters in Content-Type header.

0.12.0

8 years ago
  • #188: provides metadata as well as normal data in JSONP responses.
  • #193: allows DELETE requests to related instances.
  • #215: removes Python 2.5 tests from Travis configuration.
  • #216: don't resolve Query objects until pagination function.
  • #217: adds missing indices in format string.
  • #220: fix bug when checking attributes on a hybrid property.
  • #227: allows client to request that the server use the current date and/or time when setting the value of a field.
  • #228 (as well as #212, #218, #231): fixes issue due to a module removed from Flask version 0.10.

0.12.1

8 years ago
  • #222: on POST and PATCH requests, recurse into nested relations to get or create instances of related models.
  • #246: adds pysqlite to test requirements.
  • #260: return a single object when making a GET request to a relation sub-URL.
  • #264: all methods now execute postprocessors after setting headers.
  • #265: convert strings to dates in related models when making POST requests.

0.13.0

8 years ago
  • 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.

0.13.1

8 years ago
  • #304: fixes mimerender bug due to how Python 3.4 handles decorators.

0.14.0

8 years ago
  • 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.14.1

8 years ago
  • #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.2

8 years ago
  • #351, #355: fixes bug in getting related models from a model with hybrid properties.