Icon

Обзор основного репозитория бэкенда: структура, API и инструкции

Узнайте, как устроен основной монорепозиторий бэкенда: структура сервисов, работа с API, настройка окружения, документация и быстрый онбординг для новых разработчиков.

By Miroslav Peshkov

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

Мы рассмотрим, как работать с монорепозиторием, где находятся сервисы, как использовать и добавлять новые эндпоинты в API, а также как настраивать окружение для работы с разными базами данных. Это поможет быстрее начать работу с проектом и понять, как устроена интеграция сервисов.

Давайте начнем

Так, еще одно видео. Я хотел показать, как устроен наш основной репозиторий с бэкэндом. Это поможет быстро разобраться и найти нужные разделы. В общем, наш рендер бэкенд — это монорепозиторий, где находятся разные сервисы. Вот, по сути, тебя, Андрей, больше всего интересует наше API. Ну вот, в рамках проекта по интервью, если тебе нужны какие-то существующие ручки или нужно что-то добавить, надо сделать следующее.

У нас есть сервисы. В сервисах есть папка Го Хаб.

1
Кликните здесь
Step #1: Кликните здесь

По сути, этот Го Хаб — это отдельный проект, связанный только с нашим API.

2
Кликните здесь
Step #2: Кликните здесь

Вот здесь есть эндпоинты, которые можно использовать.

3
Кликните здесь
Step #3: Кликните здесь
4
Кликните здесь
Step #4: Кликните здесь

Там самое важное — это, наверное, джобс.

5
Кликните на "jobs.pm"
Step #5: Кликните на "jobs.pm"

По-моему, Джобс.

6
Кликните на "I"
Step #6: Кликните на "I"

Нет, вру, Джобс CRM.

7
Кликните на "jobs_crm.py"
Step #7: Кликните на "jobs_crm.py"

Вот, у нас есть ручка jobs/slash. Это позволяет поднять, посмотреть, в Swagger будет видно, какие есть методы. Соответственно, сюда можно добавлять новые.

8
Кликните на "I"
Step #8: Кликните на "I"
9
Кликните на "intQuery"
Step #9: Кликните на "intQuery"
10
Кликните на "include_only_applied_jobs"
Step #10: Кликните на "include_only_applied_jobs"
11
Кликните на "exclude_already_applied"
Step #11: Кликните на "exclude_already_applied"

Это легко и понятно. Что еще хотел объяснить? Как быстро закодить это на Vibe?

12
Кликните на "I"
Step #12: Кликните на "I"
13
Кликните на "I"
Step #13: Кликните на "I"

У нас есть папка докс. Вот, и здесь есть раздел дев. В деве указаны различные инструкции по созданию чего-либо.

14
Кликните здесь
Step #14: Кликните здесь
15
Кликните здесь
Step #15: Кликните здесь
16
Кликните здесь
Step #16: Кликните здесь

Вот, по-моему, здесь инструкцию по API я не прописывал. Думаю, Клод там либо кодексом разберется.

17
Кликните здесь
Step #17: Кликните здесь

Вот, но! Условно, есть еще проджектс. В этих проджектсах содержатся проекты, которые я тоже там делаю. Я их документирую для будущего и кодинга.

18
Кликните на "projects"
Step #18: Кликните на "projects"

Вот есть го эфирхаб апи, есть обзор. Вот здесь представлено полное описание нашего API. Вот, это тоже может быть полезно, чтобы мишка быстрее понимала контекст и что вообще происходит.

19
Кликните на "go_offer_h_api"
Step #19: Кликните на "go_offer_h_api"
20
Кликните на "м + overview.ind"
Step #20: Кликните на "м + overview.ind"
21
Кликните на "ICOR"
Step #21: Кликните на "ICOR"

Вот, в целом, что еще добавить?

22
Кликните на "I"
Step #22: Кликните на "I"

Что еще добавить? Добавить, наверное, можно следующее. У нас есть окружение для работы с продуктовой и тестовой базой данных. У нас в точке Энви есть го эфир Энв. Вот, он может быть тест, прод или локал. Если ставишь локал, тебе нужно в докере или у себя локально поднимать базу.

23
Кликните на "langgraph.json"
Step #23: Кликните на "langgraph.json"
24
Кликните на "if IS_LOCAL :"
Step #24: Кликните на "if IS_LOCAL :"

Если тестовую — у нас автоматически есть тестовая база данных, и он будет работать с ней.

25
Дважды кликните на "GO_OFFER ENV = os.getenv ("
Step #25: Дважды кликните на "GO_OFFER ENV = os.getenv ("

Если прод, то уже с продуктовой. Это на всякий случай для тестирования. Ну и, наверное, всё. Но есть еще файл майк. В нем можно запустить наш основной API. Просто напишите "майк го хаб", и он его поднимет.

26
Кликните на "Makefil"
Step #26: Кликните на "Makefil"

Вот, в целом, это все, что нужно знать об этом репозитории.

27
Кликните на "poetry run streamlit"
Step #27: Кликните на "poetry run streamlit"
28
Кликните на "I"
Step #28: Кликните на "I"

Если интересно быстро разобраться, что у нас есть помимо API, я в коде прописывал скилл онбординга.

29
Дважды кликните на "gorub :"
Step #29: Дважды кликните на "gorub :"

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

30
Кликните здесь
Step #30: Кликните здесь
31
Кликните здесь
Step #31: Кликните здесь
32
Кликните здесь
Step #32: Кликните здесь
33
Кликните на "SKILL.mdm"
Step #33: Кликните на "SKILL.mdm"

Либо ты можешь конкретно задать: расскажи мне про это, и он тебе расскажет. Вот, я это делал. В моей теории это может сократить время понимания того, что здесь происходит.

34
Кликните на "SKILL.md X"
Step #34: Кликните на "SKILL.md X"
35
Кликните на "CQUA"
Step #35: Кликните на "CQUA"