Где реализовать функционал логирования запросов?
Вечер добрый!
У меня есть функиция, которая отвечает за работу endpoint /search. Там описана реализация поиска некоего контента в базе данных и его возврата в ответе, в случае, наличия.
Но в данный момент захотелось сделать так, чтобы при обращении к /search, сервер,перед выполнением уже реализованного кода, смотрел в еще одной базе данных наличие записи с таким запросом. В случае отсутствия создавал запись, а в случае наличия записи по такому запросу, обновлял эту запись. (Другими словами хочется вести статистику по количеству запросов по каждому значению)
Подскажите пожалуйста, как реализовать данный функционал:
- через Depends вызывать какую-то функцию, которая будет делать это всё. Но не совсем уверен что можно передать внутрь неё значения получаемые в обработчик endpoint
- Через Middleware парсить каждый запрос, и в случае обращения к /search делать запись/редактирование в бд
- Тупо написать всё внутри обработчика эндпоинта /search, прям перед реализацией поиска
Использую FastApi и MongoDB. Может есть какой-то более правильный способ, который общепринят ?
Спасибо!