Как написать собственное API на Pyton

написать собственное API Python

Пошаговая инструкция по созданию 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
    1. Проверка работоспособности:
      Откройте браузер и перейдите по адресу http://localhost:8000. Вы должны увидеть сообщение «Hello World».

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

    Какие библиотеки помогут в создании API на Python

    Для создания API на Python можно использовать следующие библиотеки и фреймворки:

    1. FastAPI — современный, высокопроизводительный фреймворк для быстрой разработки API. Поддерживает асинхронное программирование и имеет встроенную документацию
    2. Flask — легковесный и гибкий микрофреймворк, на основе которого построен Eve
    3. Sanic — асинхронный веб-фреймворк, оптимизированный для скорост
    4. Falcon — простой и надежный фреймворк для создания крупномасштабных приложений и микросервисов
    5. Hug — многоинтерфейсный фреймворк, позволяющий создавать API с возможностью использования через CLI, HTTP или как локальную функции
    6. Eve — микрофреймворк на базе Flask, специально разработанный для быстрого создания REST API

    Пишите в комментах, удалось сделать API или возникли трудности?

    Оцените статью
    Уроки программирования
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest
    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии
    0
    Оставьте комментарий! Напишите, что думаете по поводу статьи.x