Revision 6b560707
b/snf-django-lib/snf_django/lib/api/__init__.py | ||
---|---|---|
61 | 61 |
|
62 | 62 |
|
63 | 63 |
def api_method(http_method=None, token_required=True, user_required=True, |
64 |
logger=None, format_allowed=True, astakos_url=None): |
|
64 |
logger=None, format_allowed=True, astakos_url=None, |
|
65 |
default_serialization="json"): |
|
65 | 66 |
"""Decorator function for views that implement an API method.""" |
66 | 67 |
if not logger: |
67 | 68 |
logger = log |
... | ... | |
71 | 72 |
def wrapper(request, *args, **kwargs): |
72 | 73 |
try: |
73 | 74 |
# Get the requested serialization format |
74 |
request.serialization = get_serialization(request,
|
|
75 |
format_allowed)
|
|
75 |
request.serialization = get_serialization( |
|
76 |
request, format_allowed, default_serialization)
|
|
76 | 77 |
|
77 | 78 |
# Check HTTP method |
78 | 79 |
if http_method and request.method != http_method: |
... | ... | |
123 | 124 |
return decorator |
124 | 125 |
|
125 | 126 |
|
126 |
def get_serialization(request, format_allowed=True): |
|
127 |
def get_serialization(request, format_allowed=True, default_serialization="json"):
|
|
127 | 128 |
"""Return the serialization format requested. |
128 | 129 |
|
129 | 130 |
Valid formats are 'json' and 'xml' and 'text' |
... | ... | |
154 | 155 |
elif accept == "application/xml": |
155 | 156 |
return "xml" |
156 | 157 |
|
157 |
return "json"
|
|
158 |
return default_serialization
|
|
158 | 159 |
|
159 | 160 |
|
160 | 161 |
def update_response_headers(request, response): |
b/snf-pithos-app/pithos/api/functions.py | ||
---|---|---|
341 | 341 |
return HttpResponse(status=202) |
342 | 342 |
|
343 | 343 |
|
344 |
@api_method('GET', format_allowed=True, user_required=True, logger=logger) |
|
344 |
@api_method('GET', format_allowed=True, user_required=True, logger=logger, |
|
345 |
default_serialization="text") |
|
345 | 346 |
def container_list(request, v_account): |
346 | 347 |
# Normal Response Codes: 200, 204 |
347 | 348 |
# Error Response Codes: internalServerError (500), |
... | ... | |
587 | 588 |
return HttpResponse(status=204) |
588 | 589 |
|
589 | 590 |
|
590 |
@api_method('GET', format_allowed=True, user_required=True, logger=logger) |
|
591 |
@api_method('GET', format_allowed=True, user_required=True, logger=logger, |
|
592 |
default_serialization="text") |
|
591 | 593 |
def object_list(request, v_account, v_container): |
592 | 594 |
# Normal Response Codes: 200, 204 |
593 | 595 |
# Error Response Codes: internalServerError (500), |
b/snf-pithos-app/pithos/api/util.py | ||
---|---|---|
1055 | 1055 |
|
1056 | 1056 |
|
1057 | 1057 |
def api_method(http_method=None, user_required=True, logger=None, |
1058 |
format_allowed=False): |
|
1058 |
format_allowed=False, default_serialization="json"):
|
|
1059 | 1059 |
def decorator(func): |
1060 | 1060 |
@api.api_method(http_method=http_method, user_required=user_required, |
1061 | 1061 |
logger=logger, format_allowed=format_allowed, |
1062 |
astakos_url=ASTAKOS_BASE_URL) |
|
1062 |
astakos_url=ASTAKOS_BASE_URL, |
|
1063 |
default_serialization=default_serialization) |
|
1063 | 1064 |
@wraps(func) |
1064 | 1065 |
def wrapper(request, *args, **kwargs): |
1065 | 1066 |
# The args variable may contain up to (account, container, object). |
Also available in: Unified diff