Разрабатывать все в одном файле — плохо 😖!

Надеюсь, вы читали мою последнюю статью о FastAPI (статья, нажмите здесь, чтобы прочитать), она была посвящена основным шагам, которым вы можете следовать, чтобы создать свой API. Я знаю, что шаги, которые я упомянул в нем, были довольно простыми 😛. В этом сообщении блога мы рассмотрим, как обрабатывать большие проекты в fastapi с помощью маршрутизаторов.

Вы, должно быть, знаете эту сцену в Мстителях (см. рис. выше), где Локи🤯 пытался вторгнуться на Землю, но наши мстители спасают планету Земля. Так что подумайте таким образом «Маршрутизатор» — это то, что делает Капитан Америка в этой сцене, он дает команду другим выполнять основную задачу и распределяет работу между ними. То же самое с маршрутизатором в fastapi, это помогает разделить код на несколько файлов python. (пример 😬!)

📜 Что Fastapi docs говорит о маршрутизаторах: если вы создаете приложение или веб-API, редко бывает так, что вы можете поместить все в один файл. FastAPI предоставляет удобный инструмент для структурирования вашего приложения, сохраняя при этом всю гибкость.📜

Давайте разберемся, как создавать маршрутизаторы с помощью кода, ниже приведен наш базовый (не относящийся к маршрутизатору) код, здесь для примера, который я создал: домашняя страница, страница добавления номеров и страница добавления строк. Поскольку это пример, я взял только две функции с тем же родительским путем, что и «/add/», но в реальном сценарии вы можете найти 20–30 таких функций, а затем вам нужно будет создать маршрутизаторы, потому что обработка очень сложная в один файл станет громоздкой работой.

Маршрутизаторы работают с той целью, что при работе в команде вам, возможно, придется разделить сложность между членами команды (здесь руководителем команды является Капитан), что поможет завершить проект намного быстрее, с правильным SME будет работать на этой ветке/маршрутизаторе.

Теперь давайте разделим приведенный выше код на разные файлы, чтобы разделить сложность. Для этого я создал еще один файл с именем «add_router.py», в котором будет APIrouter.

#let's create router
router = APIRouter(
prefix='/add',
tags = ['addition']
)

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

  1. префикс: добавьте префикс в каждый декоратор, предоставленный fastapi на этой конкретной странице.
  2. теги: это поможет вам найти, к какой категории относится функциональность (подумайте, как хэштеги, где мы можем найти связанные твиты)

после этого мы добавим эти две функции ниже нашего маршрутизатора, как вы можете видеть на изображении 1.

Как указано на изображении 2, нам нужно импортировать файл, а затем нам нужно включить маршрутизатор в экземпляр нашего приложения, созданный с помощью FastAPI().

#including router
app.include_router(add_router.router)

Как только вы сделаете вышеуказанные изменения, упомянутые на двух изображениях, ваш код будет выглядеть так. Теперь вы можете запустить сервер командой uvicorn.

# installing Uvicorn if don't have! 
pip install uvicorn 
# to the running the application 
uvicorn main:app --host 0.0.0.0 --port 80 
# after running this, if there are no error then you will get the below message at localhost

Теперь давайте проверим, для тестирования вы можете зайти в браузер и ввести «localhost/add/numbers», и вы получите результаты ниже🤯 (если нет, то вы, должно быть, что-то пропустили, пожалуйста, проверьте в командной строке, если вы не можете решить это, вставьте ошибку в мой раздел комментариев, я постараюсь дать вам несколько предложений). Пожалуйста, попробуйте поиграть с ним, перейдя на домашнюю страницу или добавив страницы строк🤯.

Итак, мы закончили с маршрутизаторами, вы можете использовать их, чтобы разделить сложность вашего проекта, не прерывая функциональность API. В дополнение к маршрутизаторам, есть Fastapi Swagger, предоставляемый Fastapi🤯. Вы можете получить его, просто добавив docs после вашего localhost в URL-адресе, то есть https://localhost/docs. Вы получите интерфейс ниже. Вы можете играть с ним, этот интерфейс разделен тегами. Выше мы дали теги в качестве параметра в маршрутизаторах, эти поля имеют получить, пост и т. д. запрос/ответ. В зависимости от того, какую функциональность мы хотим протестировать, мы можем использовать эти маршрутизаторы.

Вот и подошла к концу моя статья. Надеюсь, вам понравилось и вы лучше узнали фастапи. не стесняйтесь давать мне предложения в комментариях. Если понравилось, пожалуйста, хлопайте👏. Оставайтесь с нами для следующей статьи fastapi и следите за новыми статьями😬, спасибо!