Пошаговая инструкция по созданию API на Python с использованием популярных фреймворков:
Выбираем фреймворк:
- FastAPI для современных высокопроизводительных API с автоматической документацией
- Flask для простых и легковесных решений
Создание API с FastAPI
Установка зависимостей:
pip install fastapi uvicor
Базовый пример (main.py):
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
@app.get("/items/{item_id}")
async def read_item(item_id: int):
return {"item_id": item_id}
Запуск сервера:
uvicorn main:app --reload
Создание API с Flask
Установка зависимостей:
pip install flask
Базовый пример (app.py):
from flask import Flask, jsonify
app = Flask(__name__)
@app.route('/')
def home():
return jsonify({"message": "Hello World"})
@app.route('/items/<int:item_id>')
def get_item(item_id):
return jsonify({"item_id": item_id})
Запуск сервера:
flask run
Обработка запросов
Пример POST-запроса в FastAPI:
from pydantic import BaseModel
class Item(BaseModel):
name: str
price: float
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "price": item.price}
Пример POST-запроса в Flask:
from flask import request
@app.route('/items', methods=['POST'])
def create_item():
data = request.get_json()
return jsonify({"received_data": data}), 201
Тестирование API
Используйте curl или Postman для проверки:
# GET-запрос
curl http://localhost:8000/
# POST-запрос
curl -X POST -H "Content-Type: application/json" -d '{"name":"Book","price":19.99}' http://localhost:8000/items/
Добавление базы данных (SQLite)
Пример с Flask-SQLAlchemy:
from flask_sqlalchemy import SQLAlchemy
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///data.db'
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(80))
@app.route('/users')
def get_users():
users = User.query.all()
return jsonify([{"id": u.id, "name": u.name} for u in users])
Как установить и настроить FastAPI для создания API
Пошаговая инструкция по установке и настройке FastAPI для создания API:
Установка Python:
Убедитесь, что у вас установлен Python версии 3.7 или выше
Создание виртуального окружения:
python3 -m venv venv
source venv/bin/activate # Для Linux/macOS
venv\Scripts\activate # Для Windows
Установка FastAPI и Uvicorn:
pip install fastapi uvicorn
Создание базового приложения:
Создайте файл main.py со следующим кодом:
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"Hello": "World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
Запуск сервера разработки:
uvicorn main:app --reload
- Проверка работоспособности:
Откройте браузер и перейдите по адресу http://localhost:8000. Вы должны увидеть сообщение «Hello World».
Теперь у вас есть базовое приложение FastAPI с двумя маршрутами. Вы можете продолжить разработку, добавляя новые маршруты, модели и логику в соответствии с требованиями вашего проекта
Какие библиотеки помогут в создании API на Python
Для создания API на Python можно использовать следующие библиотеки и фреймворки:
- FastAPI — современный, высокопроизводительный фреймворк для быстрой разработки API. Поддерживает асинхронное программирование и имеет встроенную документацию
- Flask — легковесный и гибкий микрофреймворк, на основе которого построен Eve
- Sanic — асинхронный веб-фреймворк, оптимизированный для скорост
- Falcon — простой и надежный фреймворк для создания крупномасштабных приложений и микросервисов
- Hug — многоинтерфейсный фреймворк, позволяющий создавать API с возможностью использования через CLI, HTTP или как локальную функции
- Eve — микрофреймворк на базе Flask, специально разработанный для быстрого создания REST API
Пишите в комментах, удалось сделать API или возникли трудности?