''

@expose_api(name='read', url='/api/read', methods=['GET'])
@has_access_api
@permission_name('list')
def api_read(self):

    if get_order_args().get(self.__class__.__name__):
        (order_column, order_direction) = get_order_args().get(self.__class__.__name__)
    else:
        (order_column, order_direction) = ('', '')
    page = get_page_args().get(self.__class__.__name__)
    page_size = get_page_size_args().get(self.__class__.__name__)
    get_filter_args(self._filters)
    joined_filters = self._filters.get_joined_filters(self._base_filters)
    (count, lst) = self.datamodel.query(joined_filters, order_column, order_direction, page=page, page_size=page_size)
    result = self.datamodel.get_values_json(lst, self.list_columns)
    pks = self.datamodel.get_keys(lst)
    ret_json = jsonify(label_columns=self._label_columns_json(), list_columns=self.list_columns, order_columns=self.order_columns, page=page, page_size=page_size, count=count, modelview_name=self.__class__.__name__, pks=pks, result=result)
    response = make_response(ret_json, 200)
    response.headers['Content-Type'] = 'application/json'
    return response
