docs: def read(self, params, args, data):
          """Modifies the parameters and adds metadata for read results."""
          result_count = None
          result_links = None
  
          if params is None:
              params = []
          if args:
              args = args.copy()
          else:
              args = {}
  
          ctx = self._create_context(params, args, data)
          row_id = ctx.get_row_id()
  
          if not row_id:
              self._transform_list_args(args)
  
              if 'page' in args or 'limit' in args:
                  ctx = self._create_context(params, args, data)
  
                  result_count = self._get_collection_count(ctx)
  
              if 'page' in args:
                  result_links = _get_link_pages(
                      page=args['page'],
                      per_page=int(args['limit']),
                      count=result_count,
                      page_url=request.url
                  )
  
              if 'limit' not in args:
                  args['limit'] = 'unlimited'
  
          self._create_related(args)
  
          try:
              return ResourceResult(
                  body=super(JsonServerResource, self).read(params, args, data),
                  count=result_count,
                  links=result_links
              )
          except NoResultFound:
              return NOT_FOUND