Bosh sahifa Wiki FastAPI

FastAPI

FastAPI — kolumbiyalik dasturchi Sebastyan Ramires tomonidan 2018-yilda taqdim etilgan, Python tilida yozilgan zamonaviy veb-freymvork bo’lib, u asosan API yaratishga ixtisoslashgan. Nomidagi “tez” so’zi ham ishlash samaradorligiga, ham ishlab chiqish tezligiga ishorani anglatadi.

Yaratilish sababi va tezlik

Ramires mavjud Python freymvorklarida API yaratishda tur tekshiruvi, validatsiya va hujjatlashtirish alohida-alohida qo’lda bajarilishi kerakligini sezgan. FastAPI Starlette (asinxron veb-vositalar) va Pydantic (ma’lumotlar validatsiyasi) kutubxonalarini birlashtirib, bu vazifalarni avtomatlashtirgan holda, ayni paytda yuqori ishlash tezligini ta’minlaydi.

Tur ko’rsatkichlari orqali validatsiya

FastAPI’da dasturchi funksiya parametrlarining turini oddiy Python tur ko’rsatkichlari (type hints) yordamida belgilaydi, masalan def yaratish(ism: str, yosh: int). Freymvork so’rovda kelgan ma’lumotlarni avtomatik ravishda ushbu turlarga mos tekshiradi va noto’g’ri ma’lumot kelsa, tushunarli xatolik xabarini o’zi qaytaradi — bu alohida validatsiya kodi yozish zaruratini yo’qotadi.

Avtomatik hujjatlashtirish

FastAPI’ning mashhur xususiyatlaridan biri — u yozilgan kod asosida OpenAPI spetsifikatsiyasini avtomatik generatsiya qiladi va Swagger UI orqali interaktiv API hujjatini brauzerda taqdim etadi. Dasturchi alohida hujjat yozmasdan, kod o’zgarishi bilan hujjat ham avtomatik yangilanib boradi.

Asinxron qo’llab-quvvatlash

FastAPI Python‘ning async/await sintaksisini to’liq qo’llab-quvvatlaydi, bu esa ma’lumotlar bazasi so’rovlari yoki tashqi xizmatlarga so’rovlar kabi kutish talab qiladigan amallarni samarali bajarish imkonini beradi. Bu xususiyat FastAPI’ni Flask kabi an’anaviy sinxron freymvorklardan farqli o’laroq, yuqori parallel yuklamali xizmatlar uchun ham mos qiladi.

Flask va Django bilan farqi

Flask‘dan farqli o’laroq, FastAPI validatsiya va hujjatlashtirishni o’z ichiga oladi; Django‘dan farqli o’laroq esa u asosan API‘larga yo’naltirilgan bo’lib, to’liq admin panel yoki shablon tizimini o’z ichiga olmaydi. Bu maxsuslashuv FastAPI’ni ayniqsa mikroservis arxitekturasi va mashinali o’qitish modellarini xizmat sifatida taqdim etishda mashhur qilgan.

Bog’liq tushunchalar

Python, Pydantic, Starlette, OpenAPI, Asinxron dasturlash, Flask, Mikroservis