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

Начало работы с fastapi – быстро создавать API, используя Python

Я недавно начал изучать Fastapi и сравнив его с моим доверительным основанием выбора (Express), … Теги с Python, WebDev, учебником, начинающим.

Недавно я начал изучать Fastapi и сравнив его с моим доверительным основанием выбора ( Express ), и я думаю, что на самом деле понравится его простая природа. Fastapi определяет себя как «Современные, быстрые (высокопроизводительные), веб-каркас для строительства API с Python» Отказ В этой статье я постараюсь поднять вас и бежать с Fastapi, создавая простую пиццу API!

Установка

Вы можете установить Fastapi, запустив следующую команду,

pip install fastapi

Сервер

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

pip install uvicorn

Или,

pip install hypercorn

Это все, что нам нужно для этого учебника, давайте доберемся до забавной части!

Начиная

Перед созданием маршрутов Pizza давайте сначаем создам простой базовый маршрут, который возвращает простой ответ JSON. Создайте каталог для вашего проекта и создать main.py файл. Ваш код должен выглядеть что-то вроде этого (не стесняйтесь менять имя вашего ступица Pizza!).

# main.py
# Import FastAPI
from fastapi import FastAPI

# Initialize the app
app = FastAPI()

# GET operation at route '/'
@app.get('/')
async def index():
    return {"greeting" : "Welcome to Paul's Pizza!"}

Запуск живого сервера

Вы можете запустить живой сервер с UVICORN, используя следующую команду,

uvicorn main:app --reload

Обратите внимание, что в коде «главное» относится к имени файла и «приложение» – это имя экземпляра fastapi, который мы создали ранее. Если вы сейчас посетите localhost: 8000 Из вашего браузера вы увидите следующий ответ JSON,

Вещи, чтобы отметить

  1. Обратите внимание, что в коде @ app.get ("/") Рассказывает fastapi, что функция ниже отвечает за обработку запросов, которые переходят,

    • Путь /
    • используя Получить HTTP-метод. Точно так же вы можете использовать другие способы HTTP, такие как поставить , пост или Удалить Отказ
  2. Fastapi генерирует автоматическую документацию API, используя чванство. Вы можете посетить документы, посетив localhost: 8000/Документы . Вы также можете проверить конечные точки API отсюда, насколько аккуратно! На данный момент ваши документы API должны выглядеть только с только «/» маршрутом,

  3. Еще одна вещь, которую нужно заметить, Fastapi автоматически преобразует диктографии Python, списки или другие примитивные типы или Pydantic Модели для подходящего формата JSON, не нужно делать это самостоятельно!

Достаточно с основами, давайте создадим нашу пиццу API сейчас!

Создание API Pizza

Давайте теперь создадим простой API, где у нас есть список пиццы с разными свойствами, скажем, /Пицца И мы можем получить и добавить больше пиццы в список.

Настройка

Теперь мы могли бы подключиться к любой базе данных, которую мы хотим, но ради простоты давайте имеем список памяти, которые мы получаем и изменяем. Создать новую переменную дБ и инициализируйте его со следующими данными пиццы,

# main.py
#...
db = [
    {
        'id': 0,
        'name': 'Neapolitan Pizza',
        'toppings': ['Mozzarella cheese', 'Tomatoes', 'Basil']
    },
    {
        'id': 1,
        'name': 'Chicago/Deep-Dish Pizza',
        'toppings': ['Cheese', 'Tomatoes', 'pepperoni', 'Onions', 'Mushrooms']
    },
]
#...

Получить все пиццы

Для Получить Запрос на /Пицца Мы можем просто вернуть дБ Список мы создали ранее, которое содержит все пиццы.

# main.py
# ...
# get all pizzas
@app.get('/pizzas')
async def index():
    return db
# ...

Теперь, если мы посетим localhost: 8000/пицца Мы получаем список пицц, которые мы создали ранее,

Аккуратный! Вы также можете увидеть маршрут на документах ( localhost: 8000/Документы ).

Получение одной пиццы

Давайте создадим маршрут для localhost: 8000/pizzasas/ который вернет детали пиццы для пиццы с указанным я бы. Это где мы будем использовать параметры пути!

# main.py
# ...
# get a pizza by id
@app.get('/pizzas/{pizza_id}')
async def get_pizzas(pizza_id):
    for pizza in db:
        if(pizza['id'] == int(pizza_id)):
            return pizza
    return {"error": "Pizza not found with id: " + pizza_id}
# ...

Главное отметить здесь, что значение параметра PATH Pizza_id будет передан вашу функцию в качестве аргумента Pizza_id Затем используется здесь, чтобы вернуть объект Pizza с данным идентификатором. Итак, если вы сейчас отправитесь на localhost: 8000/pizzass/0 , вы увидите такое ответ,

Здорово! Но 2 типа пиццы недостаточно. Посмотрим, как мы можем создать пост-маршрут, чтобы добавить больше пиццы в наш список!

Добавление новой пиццы

Давайте создадим пост проводить маршрут /Пицца Для добавления новых пицц в наш список. Для этого нам сначала необходимо определить модель данных нашего запроса, то есть данные, которые мы должны получать по запросу. Наша модель данных здесь очень проста. У нас есть имя нашей пиццы, которая является строкой и списком начин. Мы создадим новый идентификатор для пиццы динамически. Мы определяем модель данных, наследующую Базомодель класс от Pydantic С

# main.py
#...
from pydantic import BaseModel
from typing import List

# pizza model
class Pizza(BaseModel):
  name: str
  toppings: List[str]
#...

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

# main.py 
#...
@app.post('/pizzas')
async def post_pizza(pizza: Pizza):
    # convert to dictionary
    new_pizza = pizza.dict()
    # add a new id
    new_pizza['id'] = db[-1]['id'] + 1
    # add to list
    print(new_pizza)
    db.append(new_pizza)
    return new_pizza
#...

Вы можете проверить этот пост маршрутом напрямую из наших документов API в localhost: 8000/Документы нажав на Попробуйте это Кнопка под пост-маршрутом мы только что создали и передавая тело запроса, Если мы выполним этот запрос и посетите localhost: 800/пицца , мы увидим, что наша новая пицца была добавлена в список, и идентификатор также генерируется!

Окончательные слова

Прекрасная работа! Вы создали простой API, который принимает получение и публиковать запросы с таким небольшим количеством кода. Если вам нравится то, что вы видите и хотите исследовать Fastapi больше, я предлагаю пройти через Руководство пользователя Fastapi Для более глубокого взгляда на самые важные функции. Для стартера попробуйте добавить положить и удалить маршрут для пиццы!

Если вы хотите пообщаться со мной о чем-либо технологии или просто скажите привет, вы можете Связь со мной на linkedin или Найди меня в Twitter Отказ Мои DMS открыты!

Я покидаю полный файл, который мы работали здесь, если вы хотите обратиться к нему, ура!

Оригинал: “https://dev.to/supanthapaul/getting-started-with-fastapi-create-apis-quickly-using-python-2a9f”