docs: async def dispatch(self, request, **kwargs):
          """Dispatch a request."""
          # Authorize request
          self.auth = await self.authorize(request)
  
          # Load collection
          self.collection = await self.load_many(request)
  
          # Load resource
          self.resource = await self.load_one(request)
  
          if request.method == 'GET' and self.resource is None:
  
              # Filter collection
              self.collection = await self.filter(request)
  
              # Sort collection
              self.columns_sort = request.query.get('ap-sort', self.columns_sort)
              if self.columns_sort:
                  reverse = self.columns_sort.startswith('-')
                  self.columns_sort = self.columns_sort.lstrip('+-')
                  self.collection = await self.sort(request, reverse=reverse)
  
              # Paginate collection
              try:
                  self.offset = int(request.query.get('ap-offset', 0))
                  if self.limit:
                      self.count = await self.count(request)
                      self.collection = await self.paginate(request)
              except ValueError:
                  pass
  
          return await super(AdminHandler, self).dispatch(request, **kwargs)