Ultimamente sempre quando vou desenvolver um API utilizo de facades para encapsular a lógica. Basicamente tenho meu controller que só pegar os parâmetros enviados (seja no query, path ou body) e passo para o método do facade que é capaz de executar tudo aquilo que é esperado ao chamar essa API.
O facade já recebeu tudo que ele precisa via injeção de dependência (repository, service, model, etc.) e ele é capaz de validar os dados e a realizar as chamadas a fim de atingir o objetivo da API. No final retorno o resultado de tudo isso, e fica ao controller apenas retornar essa dado, normalmente um DTO serializavel.
Essa é uma correta implementação desse padrão? Ou parece que estou escondendo um código procedural e chamando de facade?