8000 Customize automatic API return types · flask-api/flask-api@30ccdcd · GitHub
[go: up one dir, main page]

Skip to content

Commit 30ccdcd

Browse files
committed
Customize automatic API return types
1 parent face817 commit 30ccdcd

File tree

4 files changed

+11
-3
lines changed

4 files changed

+11
-3
lines changed

docs/about/release-notes.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@
22

33
This project is currently in beta. It is functional and well tested but you are advised to pay close attention to the release notes when upgrading to future versions.
44

5+
## Version 0.7.1 (unreleased)
6+
7+
* Added customization of automatic API return types (`app.response_class.api_return_types`).
8+
59
## Version 0.7
610

711
* Disabled rendering of text responses as API views.

flask_api/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
from flask_api.app import FlaskAPI
22

3-
__version__ = '0.7'
3+
__version__ = '0.7.1b2'

flask_api/app.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,8 @@ def make_response(self, rv):
5656

5757
if not isinstance(rv, self.response_class):
5858
if isinstance(rv, (text_type, bytes, bytearray, list, dict)):
59-
rv = self.response_class(rv, headers=headers, status=status_or_headers)
59+
status = status_or_headers
60+
rv = self.response_class(rv, headers=headers, status=status)
6061
headers = status_or_headers = None
6162
else:
6263
rv = self.response_class.force_type(rv, request.environ)

flask_api/response.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,14 @@
55

66

77
class APIResponse(Response):
8+
9+
api_return_types = (list, dict)
10+
811
def __init__(self, content=None, *args, **kwargs):
912
super(APIResponse, self).__init__(None, *args, **kwargs)
1013

1114
media_type = None
12-
if isinstance(content, (list, dict)) or content == '':
15+
if isinstance(content, self.api_return_types) or content == '':
1316
renderer = request.accepted_renderer
1417
if content != '' or renderer.handles_empty_responses:
1518
media_type = request.accepted_media_type

0 commit comments

Comments
 (0)
0