  class Resource(RequestMixin, ResponseMixin, AuthMixin, View):
      """Handles incoming requests and maps them to REST operations,
      performing authentication, input deserialization, input validation, output serialization."""
  
      # List of RESTful operations which may be performed on this resource.
      # These are going to get dropped at some point, the allowable methods will be defined simply by
      # which methods are present on the request (in the same way as Django's generic View)
      allowed_methods = ('GET',)
      anon_allowed_methods = ()
  
      # List of emitters the resource can serialize the response with, ordered by preference.
      emitters = ( emitters.JSONEmitter,
                   emitters.DocumentingHTMLEmitter,
                   emitters.DocumentingXHTMLEmitter,
 
</s> remove     # List of validators to validate, cleanup and type-ify the request content    
 </s> add     # List of validators to validate, cleanup and normalize the request content     </s> remove             # Typically the context will be a user, or None if this is an anonymous request,
            # but it could potentially be more complex (eg the context of a request key which
            # has been signed against a particular set of permissions)
            auth_context = self.auth

            # If using a form POST with '_method'/'_content'/'_content_type' overrides, then alter
            # self.method, self.content_type, self.CONTENT appropriately.
            self.perform_form_overloading()

            # Ensure the requested operation is permitted on this resource
            self.check_method_allowed(self.method, auth_context)

            # Get the appropriate create/read/update/delete function
            func = getattr(self, self.callmap.get(self.method, None))
 </s> add             # TODO - this isn't actually the correct way to set the vary header,
            # also it's currently sub-obtimal for HTTP caching - need to sort that out. 
            response.headers['Allow'] = ', '.join(self.allowed_methods)
            response.headers['Vary'] = 'Authenticate, Accept' </s> remove 
        self.request = request

        # Calls to 'reverse' will not be fully qualified unless we set the scheme/host/port here.
        prefix = '%s://%s' % (request.is_secure() and 'https' or 'http', request.get_host())
        set_script_prefix(prefix)

 </s> add  </s> remove     anon_allowed_methods = ('GET',)
 </s> add     permissions = ()
    http_method_names = ['get', 'post', 'put', 'delete', 'head', 'options', 'trace', 'patch']
  class Resource(RequestMixin, ResponseMixin, AuthMixin, View):
      """Handles incoming requests and maps them to REST operations,
      performing authentication, input deserialization, input validation, output serialization."""
  
    http_method_names = ['get', 'post', 'put', 'delete', 'head', 'options', 'trace', 'patch']
    http_method_names = ['get', 'post', 'put', 'delete', 'head', 'options', 'trace', 'patch']
    http_method_names = ['get', 'post', 'put', 'delete', 'head', 'options', 'trace', 'patch']
    http_method_names = ['get', 'post', 'put', 'delete', 'head', 'options', 'trace', 'patch']
    http_method_names = ['get', 'post', 'put', 'delete', 'head', 'options', 'trace', 'patch']
  
      # List of emitters the resource can serialize the response with, ordered by preference.
      emitters = ( emitters.JSONEmitter,
                   emitters.DocumentingHTMLEmitter,
                   emitters.DocumentingXHTMLEmitter,
keep keep keep keep replace replace replace replace replace keep keep keep keep keep
 Generic permissions added, allowed_methods and anon_allowed_methods now defunct, dispatch now mirrors View.dispatch more nicely 
djangorestframework/resource.py