Есть ли смысл в разделении основного сайта и его API?

Здравствуйте. Вот допустим у меня есть сайт на Django и я хочу написать API, для создания андроид приложения. Есть ли смысл разделить эти части? То есть, например, по ссылке mysite.com/create_map будет обычный сайт, на джанге. А, например, для api.mysite.com/methods/create_map разверну какой-нибудь starlette? Получается, вдруг если джанга захочет где-то заблокировать поток, даже на пол секунды, работа api не как замедлится. А благодаря асинку будет работать быстрее, чем django rest framework. Или я где то не прав?
  • Вопрос задан
  • 221 просмотр
Пригласить эксперта
Ответы на вопрос 4
@deliro
А благодаря асинку будет работать быстрее, чем django rest framework


А может сначала изучить асинк, прежде чем приписывать ему магические способности "работать быстрее"?
Ответ написан
@antonksa
вот допустим сколько у вас посетителей в час? 10? 15? Вы представляете себе, какое количество усилий вам придется приложить, чтобы поддерживать две версии кода? Будете названия таблиц джанги вручную выписывать в SQL? Или будуте для алхимии вторую схему держать и синхронизировать ее каждый раз? Не занимайтесь фигней, пара дополнительных ядер сервера и правильно написанные запросы к базе обойдутся значительно дешевле месяцев вашего труда.
Ответ написан
Комментировать
index0h
@index0h
PHP, Golang. https://github.com/index0h
Разделять нужно потому что для сайта нужно одно, а для андроид приложения - другое.
Ответ написан
Комментировать
Sobolev5
@Sobolev5
Python developer
1) Джангу нужно повесить на один контейнер (условный интерфейс)
2) API нужно вынести в другой контейнер (к примеру можно использовать FastApi который как раз базируется на Starlette).
3) Убедиться что оба контейнера смотрят в одну базу (либо сделать реплику основной базы для FastApi)
4) Далее в контейнер с FastApi подключается Tortoise ORM.

По поводу того будет ли быстрее, лучше всего вам ответят тесты.
https://www.techempower.com/benchmarks/

PS.
В целом отделение API от условного интерфейса и вынос его в отдельный контейнер (контейнеры) это общая практика и именно так и надо делать.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы