docs: def read(self, params=None, args=None, data=None):
          # type: (str, dict, dict) -> Union[List[AppModel], AppModel]
          """
          GET /resource/model_cls/[params:id]?[args:{limit,offset,page,per_page,filter_by,order_by,related,fields}]
  
          Get resource/s
  
          :param params
          :type params list
          :param args
          :type args dict
          :param data
          :type data: dict
          """
          if params is None:
              params = []
          if args is None:
              args = {}
  
          ctx = self._create_context(params, args, data)
          row_id = ctx.get_row_id()
  
          if row_id:
              return self._get_one(row_id, ctx)
  
          elif 'count' in args:
              return self._get_collection_count(ctx)
  
          elif 'desc' in args:
              return self._get_collection_desc(ctx)
  
          else:
              if 'page' in ctx.args:
                  page_to_offset(ctx.args)
  
              return self._get_collection(ctx)