FastAPI-fastkit: Python & FastAPI शुरुआती उपयोगकर्ताओं के लिए ऑल-इन-वन प्रोजेक्ट स्कैफोल्डिंग टूल
(github.com/bnbong)नमस्ते, इन दिनों AI डेवलपमेंट का क्षेत्र इतना गर्म है कि मानो लावा आलू बन गया हो, और इसी के साथ Python backend framework FastAPI में भी सचमुच बहुत से नए उपयोगकर्ता आ रहे हैं。
मैं लंबे समय से FastAPI का उपयोग और उससे प्यार करने वाला एक डेवलपर हूँ, और FastAPI में शुरुआत करने वाले डेवलपर्स की मदद करने की इच्छा से मैंने यह प्रोजेक्ट बनाया।
FastAPI-fastkit एक CLI-आधारित starter kit है, जिसे Python और FastAPI से पहली बार परिचित होने वाले उपयोगकर्ताओं के लिए डेवलपमेंट environment सेटअप और project scaffolding को तेज़ करने के लिए बनाया गया है।
बहुत ही सरल command इनपुट से FastAPI प्रोजेक्ट बनाया जा सकता है, और virtual environment बनाना, dependencies install करना—सब कुछ अपने-आप पूरा हो जाता है।
pip install fastapi-fastkit
fastkit init --interactive # इंटरैक्टिव रूप से प्रोजेक्ट कॉन्फ़िगरेशन (DB ORM, प्रमाणीकरण, टेस्टिंग, यूटिलिटी, और उपयोगकर्ता द्वारा चाही गई अन्य dependencies की स्थापना)
FastAPI एक आधुनिक और तेज़ Python web framework के रूप में पसंद किया जाता है, लेकिन जो लोग अपने पहले web framework के रूप में FastAPI अपनाते हैं, उनके लिए अभी भी कुछ entry barriers मौजूद हैं:
- कोई मानकीकृत project structure उपलब्ध नहीं होने से यह समझना मुश्किल होता है कि प्रोजेक्ट की संरचना कैसे बनाई जाए
- पहले बिंदु के विस्तार के रूप में, FastAPI-आधारित होने के बावजूद हर प्रोजेक्ट की संरचना अलग होती है, जिससे प्रोजेक्ट को समझने या open source में योगदान करने पर learning cost बढ़ती है
- दूसरे web frameworks की तुलना में ASGI server, serializing जैसी core web framework features के लिए external libraries पर निर्भरता बहुत अधिक है, जिससे FastAPI को सीखने और उपयोग करने का अनुभव अपेक्षाकृत जटिल हो जाता है (क्योंकि अन्य libraries और tools को सीखने पर भी अधिक ध्यान देना पड़ता है)
जिन लोगों ने Django इस्तेमाल किया है, वे जानते होंगे कि django-admin startproject कितना सुविधाजनक है। Spring ecosystem में भी इसी तरह Spring Initializr जैसा टूल है, जो प्रोजेक्ट को सीधे working directory में रखने में मदद करता है।
व्यक्तिगत रूप से मुझे FastAPI performance के मामले में बेहद आकर्षक framework लगता है, इसलिए मैं 5 साल से अधिक समय से इसका उपयोग कर रहा हूँ। लेकिन ऊपर बताए गए नुकसान की वजह से कुछ लोग इसमें शुरुआत करने से हिचकिचाते थे, इसलिए मुझे लगा कि FastAPI के लिए भी ऐसा टूल होना चाहिए, और इसी वजह से मैंने FastAPI-fastkit बनाया।
इस प्रोजेक्ट को विकसित करने का निर्णायक कारण तब बना जब FastAPI 0.111.0 संस्करण में FastAPI CLI package जोड़ा गया। यह package FastAPI developer tiangolo ने community की प्रतिक्रिया की पुष्टि किए बिना एकतरफा जोड़ा था, लेकिन उस update note में व्यक्त FastAPI की शुरुआती बाधा को कम करने की प्रेरणा से मैं सहमत था, और मुझे विश्वास हुआ कि मेरा प्रोजेक्ट और भी अधिक सार्थक बन सकता है।
[मुख्य विशेषताएँ]
- इंटरैक्टिव project builder (
fastkit init --interactive)
चरण-दर-चरण मनचाही dependencies और features चुनने पर code अपने-आप generate हो जाता है:
- Database: PostgreSQL, MySQL, MongoDB, Redis, SQLite
- Authentication: JWT, OAuth2, FastAPI-Users, Session-आधारित
- Background: Celery, Dramatiq
- Caching: Redis, fastapi-cache2
- Monitoring: Loguru, OpenTelemetry, Prometheus
- Testing:
pytest+ coverage का स्वचालित कॉन्फ़िगरेशन - Utilities: CORS, Rate-Limiting, Pagination, WebSocket
- Deployment: Docker,
docker-composeका स्वचालित निर्माण - Package Manager:
pip,uv,pdm,poetryमें से चयन संभव - इसके अलावा उपयोगकर्ता जिन dependencies को जोड़ना चाहें, उन्हें इनपुट देकर जोड़ा जा सकता है
- boilerplate के साथ तेज़ी से FastAPI project source code तैयार करना
अगर इंटरैक्टिव सेटअप झंझट भरा लगे, तो preconfigured templates के साथ तुरंत शुरुआत की जा सकती है:
fastkit list-templates # उपयोग के लिए उपलब्ध टेम्पलेट्स की सूची देखें
fastkit startdemo fastapi-psql-orm --project-name myapp # किसी विशेष टेम्पलेट से प्रोजेक्ट बनाएं
पैकेज के भीतर दिए गए templates, FastAPI के विभिन्न use cases को ध्यान में रखकर जोड़े गए हैं, और GitHub पर public रूप से उपलब्ध FastAPI-आधारित projects की संरचनाओं को संदर्भ के रूप में लिया गया है।
नए templates जोड़े जा रहे हैं, और वर्तमान में उपलब्ध templates ये हैं:
- fastapi-default: डिफ़ॉल्ट FastAPI project structure
- fastapi-async-crud: asynchronous CRUD कार्यों के लिए विशेष
- fastapi-dockerized: Docker deployment के लिए तैयार
- fastapi-psql-orm: PostgreSQL + SQLAlchemy ORM इंटीग्रेशन
- fastapi-single-module: सरल single module structure
- fastapi-mcp: MCP server development के लिए मूल FastAPI project structure
- खाली प्रोजेक्ट से शुरुआत
अगर आप बिना किसी विशेष सेटअप के एक साफ-सुथरे खाली प्रोजेक्ट से शुरू करना चाहते हैं: fastkit init --project-name myproject
- route जोड़ना
मौजूदा प्रोजेक्ट में नया API route जोड़ें: fastkit addroute myproject users # myproject प्रोजेक्ट में users नाम का API route जोड़ें
- development server चलाना
अलग से uvicorn command के बिना सीधे server चलाएँ: fastkit runserver --reload --port 8000
[दस्तावेज़ और संसाधन]
विस्तृत उपयोग विधि के लिए आधिकारिक दस्तावेज़ देखें:
- उपयोगकर्ता गाइड: https://bnbong.github.io/FastAPI-fastkit/user-guide/quick-start/
- ट्यूटोरियल: https://bnbong.github.io/FastAPI-fastkit/tutorial/getting-started/
- CLI रेफ़रेंस: https://bnbong.github.io/FastAPI-fastkit/user-guide/cli-reference/
- GitHub Repository: https://github.com/bnbong/FastAPI-fastkit
- PyPI Package: https://pypi.org/project/fastapi-fastkit
उम्मीद है कि FastAPI और Python में पहली बार शुरुआत करने वालों के लिए यह थोड़ा-बहुत मददगार साबित होगा।
फ़ीडबैक, सवाल और योगदान—सभी का स्वागत है!
1 टिप्पणियां
मैं एक नए प्रोजेक्ट के लिए fastapi पर विचार कर रहा था.
जिन बातों को मैं एक-एक करके सोचते हुए देख रहा था, वे सब इसमें शामिल हैं।
बेहतरीन है। धन्यवाद।