Где реализовать функционал логирования запросов?

Вечер добрый!

У меня есть функиция, которая отвечает за работу endpoint /search. Там описана реализация поиска некоего контента в базе данных и его возврата в ответе, в случае, наличия.
Но в данный момент захотелось сделать так, чтобы при обращении к /search, сервер,перед выполнением уже реализованного кода, смотрел в еще одной базе данных наличие записи с таким запросом. В случае отсутствия создавал запись, а в случае наличия записи по такому запросу, обновлял эту запись. (Другими словами хочется вести статистику по количеству запросов по каждому значению)

Подскажите пожалуйста, как реализовать данный функционал:

  • через Depends вызывать какую-то функцию, которая будет делать это всё. Но не совсем уверен что можно передать внутрь неё значения получаемые в обработчик endpoint
  • Через Middleware парсить каждый запрос, и в случае обращения к /search делать запись/редактирование в бд
  • Тупо написать всё внутри обработчика эндпоинта /search, прям перед реализацией поиска

Использую FastApi и MongoDB. Может есть какой-то более правильный способ, который общепринят ?
Спасибо!

Вернуться на верх