We detected you are likely not from a Russian-speaking region. Would you like to switch to the international version of the site?

  Назад к списку статей

Разработка и запуск собственного API-сервера на базе FastAPI с использованием Uvicorn в Termux

Приветствуем вас, уважаемые разработчики! В этой статье мы рассмотрим, как создать и запустить собственный API-сервер на базе современного фреймворка FastAPI с использованием ASGI-сервера Uvicorn, используя популярную Linux-систему для Android – Termux. Это отличный способ для разработки и тестирования API, не требующий установки дополнительных инструментов на ваш компьютер.

Что такое FastAPI и Uvicorn?

FastAPI – это высокопроизводительный (высокоскоростной) веб-фреймворк для создания API с использованием Python 3.6 и выше. Он построен на основе стандартных подсказок типов Python, что обеспечивает быструю разработку и надежную валидацию данных. FastAPI автоматизирует валидацию данных, документацию API (Swagger UI и ReDoc) и многое другое.

Uvicorn – это ASGI-сервер, который используется для запуска FastAPI-приложений. ASGI (Asynchronous Server Gateway Interface) – это протокол, который позволяет запускать асинхронные Python-приложения, такие как FastAPI.

Необходимые условия

Для работы нам потребуется:

  • Установленная Termux на вашем Android-устройстве.
  • Python 3 (обычно предустановлен в Termux).
  • pip (менеджер пакетов Python).

Установка необходимых пакетов

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

pkg update && pkg upgrade
pip install --upgrade pip
pip install fastapi uvicorn python-multipart 

python-multipart необходим для обработки файлов, если вы планируете их отправлять через API.

Создание простого API

Создайте новый файл с именем main.py (или любым другим именем по вашему желанию) с следующим содержимым:

from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from typing import Optional

app = FastAPI()

class Item(BaseModel):
    name: str
    description: Optional[str] = None
    price: float
    tax: Optional[float] = None

@app.post("/items/")
async def create_item(item: Item):
    # Здесь можно добавить логику для сохранения данных в базу данных или другую систему
    return item

Этот пример создает простой API, который принимает JSON-объект Item в теле POST-запроса. Он возвращает полученный объект.

Запуск API на Termux

В Termux перейдите в каталог, где находится файл main.py. Затем запустите API с помощью Uvicorn:

uvicorn main:app --host 0.0.0.0 --port 8000

main:app указывает на файл main.py и объект app, который мы создали в этом файле.

--host 0.0.0.0 указывает Uvicorn слушать все доступные сетевые интерфейсы, что позволит получить доступ к API извне Termux.

--port 8000 указывает порт, на котором будет запущен API.

Тестирование API

После запуска API вы можете протестировать его с помощью различных инструментов, таких как curl, Postman или веб-браузера. Например, с помощью curl:

curl -X POST -H "Content-Type: application/json" -d '{"name": "Test Item", "description": "A test item", "price": 10.99}' http://<Ваш IP-адрес>:8000/items/

Замените <Ваш IP-адрес> на IP-адрес вашего Android-устройства.

Дополнительные возможности

FastAPI предоставляет множество дополнительных возможностей, таких как валидация данных, автоматическая генерация документации API (Swagger UI и ReDoc), аутентификация и авторизация и многое другое. Вы можете ознакомиться с документацией FastAPI, чтобы узнать больше: https://fastapi.tiangolo.com/

Заключение

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

Нужна помощь в разработке и развертывании ваших приложений? РыбинскЛАБ предлагает широкий спектр услуг в области IT, включая разработку мобильных приложений, веб-разработку и системную интеграцию. Свяжитесь с нами, чтобы узнать больше: [ссылка на сайт РыбинскЛАБ]

* Текст статьи подготовлен и структурирован с использованием технологий искусственного интеллекта. Проверен и доработан перед публикацией.

Нужна помощь с настройкой Termux, Linux и серверов?

Я оказываю ИТ-услуги: настройка серверов, автоматизация, безопасность, помощь с Linux и инфраструктурой. Материалы сайта — только в ознакомительных и образовательных целях.

Связаться со мной
Поддержать проект