К примеру, мне нужен список пользователей.
GET api/users?field=name
В другом, мне нужно к этому списку в начале добавить пустой элемент (для select)
Это вообще к получению данных не относится, то как вы используете данные не имеет отношения к API.
В третьем, нужен список с дополнительным условием, скажем все пользователи с флагом enable = 1
итп.
GET api/users?field=name&enable=1
Если вы говорите о внутреннем API - то же самое в целом:
array_column(
$Users->get(
$Users->search()
),
'name',
'id'
)
array_column(
$Users->get(
$Users->search(['enabled' => 1])
),
'name',
'id'
)
Если параметров может быть небольшое количество - можно просто завести на каждый параметр отдельный аргумент, если данных много - фильтр того, какие колонки возвращать тоже можно вынести в отдельный аргумент, но это уже нужно знать что у вас как устроено и какие масштабы.
Главное делайте операции атомарными, потом можно будет скомпоновать как нужно.