FastAPI — це занадто складно: Starlette і Pydantic — це все, що вам дійсно потрібно.

pic

Starlette та Pydantic є потужними інструментами для створення API на Python, що можуть дати розробникам більше гнучкості та контролю, ніж FastAPI. Хоча FastAPI здобув популярність завдяки своїм зручним можливостям і скороченому коду, фактично він є лише обгорткою для Starlette та Pydantic. Використовуючи ці бібліотеки безпосередньо, розробники можуть будувати високопродуктивні API, використовуючи лише основні компоненти.

Starlette підтримує асинхронну обробку запитів за стандартом ASGI, що дозволяє ефективно обробляти асинхронні задачі. Приклад із FastAPI показує, як це відбувається за допомогою декораторів, але в Starlette це робиться безпосередньо через маршрут на екземплярі додатка. Обидва варіанти дозволяють виконувати асинхронні операції, однак Starlette пропонує більшу гнучкість, оскільки маршрути визначаються безпосередньо на додатку.

Крім того, Starlette має потужну підтримку проміжного програмного забезпечення (middleware). Наприклад, для додавання логування, в Starlette можна створити своє власне проміжне програмне забезпечення, що надає більший контроль у порівнянні з FastAPI, де для цього потрібно використовувати залежності.

Starlette також підтримує WebSocket без необхідності в додаткових обгортках, дозволяючи створювати чати або інші реальні часи додатки. Пряме використання WebSocket в Starlette є зручнішим, оскільки воно надає інтерфейс для обробки підключень безпосередньо.

Що стосується валідації даних, Pydantic також можна використовувати безпосередньо в Starlette для визначення моделей і валідації даних. У FastAPI це відбувається автоматично, тоді як в Starlette розробник має самостійно обробляти виключення і помилки. Проте це дає більше контролю і можливостей для кастомізації в складних проєктах.

Крім того, Pydantic дозволяє обробляти складні моделі даних, включаючи вкладені моделі, що робить валідацію ще більш потужною. Наприклад, можна вкласти модель адреси у модель користувача і використати Pydantic для перевірки коректності всіх вкладених даних.

Комбінація Starlette для маршрутизації та Pydantic для валідації та серіалізації дозволяє створювати повноцінні API з мінімальними витратами на додаткові обгортки, що робить цей підхід гнучким і масштабованим для будь-яких проєктів.

У порівнянні з FastAPI, Starlette і Pydantic дають більше можливостей для налаштувань і кастомізації, що робить їх ідеальними для складних сценаріїв та забезпечує більшу адаптивність до потреб проєкту.

Leapcell: Найкращий серверлес хостинг для веб-сервісів

Нарешті, я хочу порекомендувати платформу, яка найкраще підходить для розгортання Python сервісів: Leapcell


pic

🚀 Розробляйте з улюбленою мовою

Розробляйте без зусиль на JavaScript, Python, Go або Rust.

🌍 Розгортайте необмежену кількість проєктів безкоштовно

Платіть тільки за використання — без запитів, без платежів.

⚡ Сплата за фактичне використання, без прихованих витрат

Ніяких платежів за простій, тільки безшовна масштабованість.


pic

📖 Ознайомтесь з нашою документацією

🔹 Слідкуйте за нами в Twitter: @LeapcellHQ

Перекладено з: FastAPI is Overkill: Starlette and Pydantic Are All You Really Need