Разрабатываю проект на fastapi. Один из router может принимать один или несколько параметров сразу (book_id, name)
Например
?book_id=24&name=test
или просто
?name=test
На основе полученных параметров я пытаюсь формировать sql-запрос для выдачи результатов пользователю:
cursor.fetch("""SELECT * FROM book
WHERE book_id = $1
AND name = $2
ORDER BY reach DESC OFFSET $3 LIMIT $4""", 24, 'test', 0, 20)
Но, как сказал в начале, могут быть ситуации, когда пользователь ищет в базе только по одному параметру (например, только по имени), как в таком случае формировать условия в SQL-запросе?
Можно, конечно, использовать условия в python для перебора разных вариантов запросов, но я не считаю это правильным решением.