Revision d0d9a3f5 snf-django-lib/snf_django/lib/api/__init__.py

b/snf-django-lib/snf_django/lib/api/__init__.py
62 62

  
63 63
def api_method(http_method=None, token_required=True, user_required=True,
64 64
               logger=None, format_allowed=True, astakos_url=None,
65
               default_serialization="json"):
65
               serializations=None, strict_serlization=False):
66 66
    """Decorator function for views that implement an API method."""
67 67
    if not logger:
68 68
        logger = log
69 69

  
70
    serializations = serializations or ['json', 'xml']
71

  
70 72
    def decorator(func):
71 73
        @wraps(func)
72 74
        def wrapper(request, *args, **kwargs):
73 75
            try:
74 76
                # Get the requested serialization format
75
                request.serialization = get_serialization(
76
                    request, format_allowed, default_serialization)
77
                serialization = get_serialization(
78
                    request, format_allowed, 'json')
79

  
80
                # If guessed serialization is not supported, fallback to
81
                # the default serialization or return an API error in case
82
                # strict serialization flag is set.
83
                if not serialization in serializations:
84
                    if strict_serlization:
85
                        raise faults.BadRequest(("%s serialization not "
86
                                                "supported") % serialization)
87
                    serialization = serializations[0]
88
                request.serialization = serialization
77 89

  
78 90
                # Check HTTP method
79 91
                if http_method and request.method != http_method:

Also available in: Unified diff