Рубрики
Без рубрики

Быстро развивать высокопроизводительные API с Fastapi и Python

Если вы прочитали некоторые из моих предыдущих сообщений на Python, вы знаете, что я борьба с колбы, и это мой GoTo для … Теги с Python, WebDev, API, начинающими.

Если вы прочитали некоторые из моих предыдущих постов на Python, вы знаете, что я Колбу Вентилятор, и это мой Goto для строительных API в Python. Однако недавно я начал много слышать о новой API Framework для Python под названием Fastapi. И после создания некоторых API с этим я могу сказать, это удивительно!

Этот проект был создан Себастьян Рамирес И он накопился во время написания почти 20 тысяч звезд, а большие имена здания API в производстве, как Microsoft, Uber, Netflix и другие.

Но почему эта новая библиотека так популярна и как это сравнивается с колбой или Django?

Функции

Fastapi – это довольно минималистичная структура, скорее лайки колба. Однако это не делает его менее мощным. Fastapi построен с использованием современных концепций Python, и он основан вне объявлений типа Python 3.6. Давайте посмотрим, что некоторые функции эта библиотека упакована:

Автоматические документы

Необходимо для любого API представляет собой документацию о конечных точках и типах. Обычный подход к решению этой проблемы является использование Openapi и впоследствии инструменты, такие как Swagger Ui или Redoc представить информацию. Они упаковываются автоматически с Fastapi. Позволяя вам сосредоточиться на вашем коде, а не настроить инструменты.

Напечатанный Python

Это большой. Fastapi использует объявления типа Python 3.6 (благодаря Pydantic), это означает, что он использует функцию Python, которая позволяет вам указать тип переменной. И эта рамка делает обширное использование из него, предоставляя вам отличную поддержку редактора. Автозаполнение работает удивительно.

Вот пример кода с использованием типированных объявлений:

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()

class Item(BaseModel):
    name: str
    price: float

@app.get("/")
def read_root(item: Item):
    return item.price

Мы только что пошли от

name

к

name: str

Это оно! а также как результат

Красивый!

Проверка

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

  • JSON Объекты (Dict)
  • JSON Array (список)
  • Строка (ул) с мин и максимальная длина
  • Числа (int, float) с минимальными и максимальными значениями
  • Урл
  • Эл. адрес
  • Uuid
  • И еще много …

Безопасность и аутентификация

Это важная часть любого API, и это код, который мы обычно просто повторяем, так почему бы не более интегрировать его в рамки? Fastapi делает именно это.

Библиотека предоставляет поддержку последующим:

  • Http basic.
  • OAUTH2 (JWT жетоны)
  • Клавиши API в заголовках, параметрах запроса или файлов cookie.

Документация

Возможно, не совсем особенность рамки, однако, стоит упомянуть. Документация проекта просто удивительна. Это очень ясно и охватывает темы с примерами и объяснениями.

Представление

Fastapi быстро! Но не только быстро для кода, но и это обрабатывает запросы Super Fast! И не я просто говорю это. Вы можете проверить ориентиры по нескольким каркасам, используя Techempower Benchmark Tool. . Вот результаты, которые я получил для Python Frameworks. Флэк и Джанго – это путь в списке, с фанапы первым и таким образом самым исполнительным.

Асинхронный по природе

Давайте посмотрим на следующий код:

@app.post("/item/", response_model=Item)
async def create_item(item: Item):
    result = await some_code_running_in_background(item)
    return result

Это JavaScript? Я обещаю тебе, нет, хотя выглядит знакомым, верно? Этот фрагмент на самом деле Python, используя асинхронные методы.

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

Заключение

Fastapi – это относительно новая структура, которая следует за минималистичным подходом колба, но добавляя важные особенности, которые облегчают работу и с потрясающим характеристиком. Это отличный выбор для вашего следующего проекта API, и вы прочитаете мне больше об этом, так как я использую его все больше и больше на моих API.

Спасибо за прочтение!

Если вам нравится история, пожалуйста, не забудьте подписаться на нашу бесплатную рассылку, чтобы мы могли оставаться на связи: https://livecodestream.dev/subscribe.

Оригинал: “https://dev.to/livecodestream/quickly-develop-highly-performant-apis-with-fastapi-python-c9c”