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