FastAPI, обяснено за 5 минути или по-малко

FastAPI, рамка на Python, която ви позволява да разработвате уеб API, е популярна през последните няколко години.

API (Интерфейс за програмиране на приложения) е основата на съвременната архитектура. Те позволяват приложенията да бъдат модулирани и отделени. Това ви позволява бързо да създавате приложения и улеснява поддръжката им.

Ето защо е добра идея да научите FastAPI, ако планирате да използвате Python за разработване на уеб приложения. Тази статия ще ви научи на всичко относно основите на FastAPI.

Какво е FastAPI?

FastAPI е базирана на Python уеб рамка. През последните години привлече много внимание. Структурата му за разработка е подобна на Flask, който беше най-популярният избор за тези, които искаха да научат уеб разработка на Python.

FastAPI е лесен за използване и неговата документация е ясна и лесна за следване. FastAPI се използва от технологични гиганти като Microsoft, Netflix и Uber.

FastAPI има всички функции, които бихте очаквали от API builder, но не се ограничава до тях. Можете да го използвате, за да монтирате назад WSGI, за което повечето потребители не знаят.

Основната цел на FastAPI е да изгражда API крайни точки, както подсказва името. Това може да се направи толкова ефективно, колкото връщането на данни от речника на Python в JSON или използването на интерактивния Swagger UI на OpenAPI.

FastAPI не се ограничава до API. Може да се използва за почти всичко, което прави една уеб рамка, от доставяне на уеб страници с шаблонния двигател Jinja2 до обслужване на приложения, захранвани от WebSockets.

По-долу са предимствата на FastAPI:

  • FastAPI ви позволява да валидирате типа данни на разработчика, дори когато използвате вложени JSON заявки.
  • Той предлага функцията за автоматично довършване, която ви позволява да създавате приложения за по-кратко време и отнема по-малко усилия.
  • Той е съвместим с речника на OpenAPI и JSON Schema, който ви позволява да валидирате и анотирате JSON документи.
  • FastAPI ви позволява бързо да изградите GraphQL API, като използвате библиотека на Python, наречена graphene–python.
  • FastAPI е съвместим с OAuth 2.0, както и с външни доставчици.
  Как да поръчате доставка на храна от ресторанти онлайн

По-долу са недостатъците на FastAPI:

  • FastAPI все още е нова рамка, така че има малко общност с насоки. Няма достатъчно информация за външно образование, като книги, курсове или уроци.
  • Тъй като трябва да свържем всички компоненти заедно в FastAPI, основният файл може да стане много голям или претъпкан.

Уникални характеристики на FastAPI

Това са уникалните характеристики, които правят FastAPI най-популярната уеб рамка на Python до момента.

  • Висока производителност: FastAPI е по-производителен от други Python рамки. Ориентираната към скорост рамка на FastAPI го прави топ избор. Всичко се свежда до по-бърза скорост и по-добра производителност чрез използване на функциите на Starlette, създаване на API и създаване на готови кодове.
  • Бързо кодиране: Разработчиците не трябва да създават нищо ново с готови за производство кодове. Това ускорява процеса с приблизително 200% до 30%. FastAPI работи на Starlette и има много повече функции, които могат да се използват за изграждане на API за валидиране и сериализиране на данни. Рамката вече разполага с всички необходими компоненти, което намалява времето, необходимо за кодиране.
  • Минимални грешки: рамката има функция за автоматично довършване, която автоматично вмъква по-голямата част от кода в частта. Това минимизира възможността за грешки и подобрява качеството на изхода.
  • Лесно за разбиране: FastAPI не прави нищо освен Modern Python. Това е модифицирана версия на Python 3.6 и не съдържа нов синтаксис. Рамката може да се използва от всеки, който разбира добре езика.
  • Минимални усилия: FastAPI генерира OpenAPI документация автоматично с минимални усилия от разработчика. Тази информация може да бъде намерена в директорията на приложението/doc. Документацията съдържа подробна информация за крайните точки на API, кодовете за връщане, параметрите на отговора и други подробности.
  • Поддръжка на редактор: Всички компоненти на рамката са проектирани с оглед на автоматичното довършване. Това е просто, като дава възможност на разработчиците да създават готов код. Можете също така да тествате кода направо от вашия браузър с интерактивната документация.
  • Отворени стандарти: Python уеб рамката на FastAPI е огромно предимство. Рамката е съвместима с OpenAPI, известен преди като Swagger, който позволява създаване на API.

FastAPI инсталация

Ето простите стъпки за инсталиране на FastAPI на Linux или Windows.

#1. Инсталиране на FastAPI на Linux

Инсталирайте Python 3 на Linux, като използвате командата по-долу:

sudo apt install python3

Инсталирайте pip на Linux, като използвате командата по-долу:

sudo apt install python3-pip

След това инсталирайте FastAPI на Linux.

pip install fastapi

Ще ви е необходим и ASGI сървър. И така, инсталирайте uvicorn с помощта на pip.

pip install "uvicorn[standard]"

#2. Инсталиране на FastAPI на Windows

Инсталирайте Python 3 на Windows, като използвате магазина на Microsoft. Това също ще инсталира pip.

  Как да използвате pctechbg.net API с PHP клиенти

След това инсталирайте FastAPI на Windows.

pip install fastapi

Накрая инсталирайте ASGI сървър uvicorn.

pip install "uvicorn[standard]"

Новите употреби на FastAPI

Ето някои приложения на FastAPI от новата ера:

Автоматизирани документи

Документацията за типовете API и крайните точки е задължителна. Този проблем може да бъде разрешен с помощта на OpenAPI, Swagger UI и ReDoc. Те се опаковат автоматично с FastAPI. Това ви позволява да се концентрирате върху вашия код, а не да настройвате инструменти.

Въведен Python

FastAPI използва декларации за тип Python 3.6 (благодарение на Pydantic). Това означава, че използва функция на Python, която ви позволява да укажете типа и типа на променлива. Тази рамка го използва чудесно, като ви дава отлична поддръжка за редактор. Автоматичното довършване работи невероятно.

Валидиране

Pydantic вече интегрира валидирането в тази рамка. Може да се извърши валидиране на стандартни типове Python и персонализирани валидации на полета.

Сигурност и автентификация

Това е важна част от всеки API. Често просто повтаряме кода, така че защо да не включим част от него в нашата рамка? FastAPI прави точно това.

Библиотеката поддържа HTTP Basic, OAuth2 токени (JWT токени) и заглавни API ключове.

Асинхронен характер

FastAPI по подразбиране поддържа асинхронни крайни точки, което прави вашия код по-прост и по-ефективен. Това е значително предимство пред Flask.

FastAPI срещу Flask: Ключови разлики

Разлики в употребата

Налице е FastAPI, платформа с пълен стек, която предоставя всичко необходимо за изграждане на вашия API. Flask, от друга страна, е микро рамка и не предлага всички същите функции като FastAPI. Flask може да бъде полезен, ако трябва бързо да създадете прототип на идея или просто уеб приложение.

Flask и FastAPI са много различни по начина, по който се използват. Рамката Flask може да се използва за прототипиране на нови идеи и приложения, докато рамката FastAPI може да се използва за изграждане на API. Можете бързо да изградите бекенд сървър, като го използвате, без никакви познания по кодиране.

Малки уеб сайтове и уеб приложения

FastAPI е лесен за използване, лек и може да се използва за разработка на уеб и приложения в малък мащаб. Той включва обектно-релационен слой (ORM), който обработва обекти с данни в рамките на приложението, така че да имате бърз достъп до тях чрез кодиране.

  Как да преоразмерите изображение [from Any Device]

Слоят ORM следи вашите бази данни и ви позволява да забравите за ръчното им актуализиране, когато се добавя, модифицира или изтрива нова информация от уебсайта или приложението.

WSGI срещу ASGI

Може би сте забелязали основна разлика: Flask използва WSGI за своя стандартен интерфейс, докато FastAPI използва ASGI. Както бе споменато по-рано, WSGI обработва заявките синхронно. Заявките се обработват последователно. Човек не може да започне, докато последната задача не бъде изпълнена.

ASGI обработва заявките асинхронно. Това позволява задачите да се изпълняват със собствено темпо и не изисква да чакат други.

Общност

Друга разлика е общността. Flask е общност, която съществува по-дълго от FastAPI. Това означава страхотна документация и външна помощ от други, които пишат за Flask.

FastAPI все още е нов проект, така че общността тепърва ще нараства толкова много. Това означава, че въпреки че има достатъчно документация, няма много външна помощ.

По-долу са обобщени таблици за FastAPI срещу Flask:

Вградено е валидиране на FastAPIFlaskData. Няма валидиране на данни. Налична е поддръжка на асинхронни задачи. Не е налична поддръжка на асинхронни задачи. Реализира ASGI спецификации. Поддържа WSGI приложения. Автоматична поддръжка на документи. Ръчна поддръжка на документи. Съобщението за грешка се показва във формат JSON. Съобщението за грешка се показва на HTML страници. По-малка поддръжка на общността. Богата поддръжка на общността.

FastAPI или Flask: Кое да изберете?

FastAPI и Flask могат бързо да настроят Python уеб сървъри и приложения за наука за данни. И двете изискват еднакви усилия за внедряване, но коя рамка е най-добра за следващия ви проект?

FastAPI е най-добрият вариант, когато скоростта и производителността са от най-голямо значение. Тази рамка е най-добра, ако изграждате CDN и очаквате значителен трафик. FastAPI ви позволява да изтеглите рамката и незабавно да я използвате. Шаблонът на проекта ще ви спести време и ще ви помогне да спестите време.

FastAPI е по-добра опция от Flask, когато създавате API. Това е особено вярно, когато се вземат предвид микроуслуги и други съображения. Flask е най-добрият избор, ако вече имате много инструменти, изградени около тази рамка.

Заключение

И така, това беше всичко за FastAPI. FastAPI предлага превъзходна скорост и производителност. Тази рамка е най-добрата, ако изграждате своята мрежа за доставка на съдържание и очаквате трафик. Иновативната рамка и шаблон на проект на FastAPI ще ви помогнат да спестите време.

Flask може да бъде по-добър за създаване на API, особено микроуслуги. FastAPI също е по-добър от Flask. Flask е по-добър избор, ако вече го използвате широко.

Можете също така да проучите някои популярни Python Frameworks за изграждане на API.