У меня к примеру, в апи что я сейчас делаю - рест и gql, живут совместно, для различных клиентов. Так вот именно связь с бд и получение данных, я вообще вынес в отдельные сервисы, в случае рест контроллеры у меня являются валидаторами и не более, в случае gql также. Абстрагируйте по максимуму логику
В планах отказаться от реста совсем, так как у нас будет SAAS, с одной точкой входа, которая в зависимости от запрашивающего клиента будет отдавать данные из разных БД. В связи с этим и интересуюсь реализацией.