Exemplo n.º 1
0
            if not error.application_code == None:
                data.update({'application_code' : error.application_code})

            response = ApiResponse(data, error.status)
        except Exception, error:
            response = ApiResponse({
                'message' : 'Internal Server Error',
                'status' : 500
            }, 500)
        finally:
            # TODO : Yanıtın farklı formatlarda sunulabilmesini destekle
            if isinstance(response, ApiResponse):
                status_code = response.status
                mimetype = 'text/plain'
                if self._format == 'json':
                    mimetype = 'application/json'
                elif self._format == 'xml':
                    mimetype = 'text/xml'

                response = HttpResponse(response.to_json(), '%s; charset=utf-8' %(mimetype))
                response.status_code = status_code

            # İstemci tarafındaki yetersizliklerden dolayı bazen 200 haricindeki hata kodları soruna neden olabiliyor.
            # Bu sorunu aşmak için suppress_response_codes=1 değeri ile istekte bulunmak yeterli.
            if request.GET.get('suppress_response_codes', False) == '1':
                response.status_code = 200

            return response