@selcukgiray You can use Spatie’s query builder package in tandem with Laravel’s built-in API resources:
public function index()
{
$articles = QueryBuilder::for(Article::query())
->allowedFilters([
// Put allowed filters here..
])
->allowedSorts([
// Put allowed sorts here...
])
->paginate();
return ArticleResource::collection($articles);
}