return await db.Certs.Where(blabla).ToArrayAsync();
}
чем отличается от
[HttpPost, AllowAnonymous, Route("certificates")]
public async Task<string[]> GetCertificates(string[] thumbprints)
{
return await serviceBlaBla(...)
}
такая же каша будет ? ыили нет?
в данном случае каши нет, но теряется независимость слоев
Нет. И вот почему. 1) В asp'шной логике можно реализовать Exception Handling. 2) Формирование кастомного ответа (когда отдавать будете Response, отличный от данных из базы). 3) Что если Вашему методу потребуется в дальнейшем что-то побольше одного обращения в базу?
1. если вы ВДРУГ решите потестить роуты или баладу которую вы вешаете в аттрибуты методов или на сам контроллер вам нужно будет мокать db коротко : не мешай слои длинно : 2. если приходит и говорит заказчик , мол давай в ответ еще добавим ...... , который вам нужно добавить из сервиса 2 , данная инфа нужна только в для 1 метода , допустим из 10 - ну такое 😒 , а потом еще добавляете {X} и вот тебе надо выделать в отдельный класс . А потом начинаются пляски , там отдельный класс , а там всё в контороллере и ты бегаешь по структуре проекта как дебил в поисках 3. если в тиме есть правило - не мешаем слои - ты примерно знаешь где ждать искать проблему , или что править , когда понадобиться .
Обсуждают сегодня