Как связать два разных приложения с одной бд postgres?

Делаю телеграм бота с веб аппом. Фронт - React, бэк - FastAPI для веб аппа и aiogram 3 для бота. У меня возникла проблема, я написал какую то часть бэка и перешел к написанию бота, но я не могу понять как связать два разных приложения с одной бд (бот и бэк).

  • Как вариант можно написать в бэке апи-ручки и обращаться к ним из бота, но я хз чет даже как тут в плане безопасности быть, наверно любой желаюший сможет обратиться к бд по данному апи. Хз как тут можно пофиксить это.

  • Второй - это закинуть бэк и бота в одну репу и иметь общие между ними модели. Как я и сделал в принципе на данный момент, посмотрю как это будет работать. Потому что опыта у меня еще немного и другие подходы, которые я описал кажуться мне немного сложными или странными в реализации.

  • Третий - просто подключиться к одной бд и создать такие же модели как и в бэке. Но тут как будто код дублируется. Но тоже норм вариант, я изначально думал его использовать, но потом решил попробовать второй.

У каждого подхода есть свои плюсы и минусы, но какой самый лучший для моего кейса или есть какие нибуль другие варианты в реализации?


Ответы (2 шт):

Автор решения: kretoffer

Все основные варианты ты описал. Делать API для обращения к БД может быть рисково, но если правильно настроить (но это много мороки) все будет отлично, но я этот вариант не советую. Если у тебя проект не большой, то можешь оставлять так как есть, от этого даже есть плюсы и больше возможностей в расширении проекта, но если у тебя крупный бот и back end, то лучше пойти по третьему пути

→ Ссылка
Автор решения: eri

ещё вариант - выделить бд в отдельный проект и прописать его как зависимости в фастапи и телеграме.

→ Ссылка