विषय पर बढ़ें
FastAPI Conf '26 October 28, 2026 Amsterdam, NL All about FastAPI, right from the source. Learn more
FastAPI Conf '26 October 28, 2026 Amsterdam, NL All about FastAPI, right from the source. Learn more
🌐 एआई और मनुष्यों द्वारा किया गया अनुवाद

यह अनुवाद मनुष्यों के मार्गदर्शन में एआई द्वारा किया गया है। 🤝

इसमें मूल अर्थ को गलत समझने या अप्राकृतिक लगने आदि जैसी गलतियाँ हो सकती हैं। 🤖

आप हमें एआई LLM को बेहतर मार्गदर्शन करने में मदद करके इस अनुवाद को बेहतर बना सकते हैं।

अंग्रेज़ी संस्करण

FastAPI

FastAPI

FastAPI framework, उच्च प्रदर्शन, सीखने में आसान, कोड लिखने में तेज़, production के लिए तैयार

टेस्ट कवरेज package संस्करण समर्थित Python संस्करण


दस्तावेज़: https://fastapi.tiangolo.com

स्रोत कोड: https://github.com/fastapi/fastapi


FastAPI एक आधुनिक, तेज़ (उच्च-प्रदर्शन) web framework है जो standard Python type hints के आधार पर Python से APIs बनाने के लिए है।

मुख्य विशेषताएँ:

  • तेज़: बहुत उच्च प्रदर्शन, NodeJS और Go के समकक्ष (Starlette और Pydantic की बदौलत)। उपलब्ध सबसे तेज़ Python frameworks में से एक
  • कोड लिखने में तेज़: features विकसित करने की गति लगभग 200% से 300% तक बढ़ाएँ। *
  • कम बग्स: मानवीय (developer) त्रुटियों में लगभग 40% की कमी। *
  • सहज: बेहतरीन editor support। हर जगह Completion। डिबगिंग में कम समय।
  • आसान: इस्तेमाल और सीखने में आसान होने के लिए डिज़ाइन किया गया। docs पढ़ने में कम समय।
  • संक्षिप्त: कोड डुप्लीकेशन को न्यूनतम करें। प्रत्येक parameter declaration से कई features। कम बग्स।
  • मजबूत: production-ready कोड प्राप्त करें। स्वतः इंटरैक्टिव दस्तावेज़ीकरण के साथ।
  • standards-आधारित: APIs के open standards पर आधारित (और पूर्णतः अनुकूल): OpenAPI (जिसे पहले Swagger कहा जाता था) और JSON Schema

* आंतरिक development team द्वारा production applications बनाते समय किए गए परीक्षणों के आधार पर अनुमान।

प्रायोजक

कीस्टोन प्रायोजक

FastAPI Cloud. By the same team behind FastAPI. You code. We Cloud.

गोल्ड प्रायोजक

BlockBee Cryptocurrency Payment Gateway Auth, user management and more for your B2B product Deploy & scale any full-stack web app on Render. Focus on building apps, not infra. Cut Code Review Time & Bugs in Half with CodeRabbit The Gold Standard in Retail Account Linking Deploy enterprise applications at startup speed SerpApi: Web Search API Greptile: The AI Code Reviewer

सिल्वर प्रायोजक

Pay as you go for market data Svix - Webhooks as a service Fine-Grained Authorization for FastAPI Dribia - Data Science within your reach BairesDev | Nearshore Software Development & Staff Augmentation Company TutorCruncher

अन्य प्रायोजक

विचार

"मैं इन दिनों FastAPI का बहुत उपयोग कर रहा/रही हूँ। वास्तव में मैं अपनी team की Microsoft में ML सेवाओं के लिए इसे उपयोग करने की योजना बना रहा/रही हूँ। इनमें से कुछ को मुख्य Windows product और कुछ Office products में इंटीग्रेट किया जा रहा है।"
— कबीर खान, Microsoft (संदर्भ)

"[...] मैं इन दिनों FastAPI का बहुत उपयोग कर रहा/रही हूँ। [...] वास्तव में मैं अपनी team की Microsoft में ML सेवाओं के लिए इसे उपयोग करने की योजना बना रहा/रही हूँ। इनमें से कुछ को मुख्य Windows product और कुछ Office products में इंटीग्रेट किया जा रहा है."

कबीर खान - Microsoft (संदर्भ)

"हमने FastAPI लाइब्रेरी अपनाई ताकि एक REST सर्वर स्पॉन किया जा सके जिसे अनुमानों को प्राप्त करने के लिए query किया जा सके। [Ludwig के लिए]"

पिएरो मोलिनो, यारोस्लाव डुडिन, और साई सुमंत मिर्याला - Uber (संदर्भ)

"Netflix हमारे संकट प्रबंधन ऑर्केस्ट्रेशन framework: Dispatch के ओपन-सोर्स रिलीज़ की घोषणा करते हुए प्रसन्न है! [FastAPI के साथ बनाया गया]"

केविन ग्लिसन, मार्क विलानोवा, फॉरेस्ट मॉन्सेन - Netflix (संदर्भ)

"यदि कोई production Python API बनाना चाहता है, तो मैं FastAPI की अत्यधिक अनुशंसा करूंगा/करूंगी। यह सुंदरता से डिज़ाइन किया गया है, उपयोग में सरल है और बेहद स्केलेबल है, यह हमारी API first development रणनीति का मुख्य घटक बन गया है और हमारे Virtual TAC Engineer जैसे कई ऑटोमेशन्स और सेवाओं को चला रहा है."

डीयोन पिल्सबरी - Cisco (संदर्भ)

FastAPI मिनी डॉक्यूमेंट्री

साल 2025 के अंत में एक FastAPI मिनी डॉक्यूमेंट्री रिलीज़ हुई, आप इसे ऑनलाइन देख सकते हैं:

FastAPI मिनी डॉक्यूमेंट्री

Typer, CLIs का FastAPI

यदि आप web API के बजाय टर्मिनल में उपयोग होने वाला CLI ऐप बना रहे हैं, तो Typer देखें।

Typer, FastAPI का छोटा भाई/बहन है। और इसका उद्देश्य CLIs का FastAPI होना है। ⌨️ 🚀

आवश्यकताएँ

FastAPI दिग्गजों के कंधों पर खड़ा है:

  • web हिस्सों के लिए Starlette
  • data हिस्सों के लिए Pydantic

Installation

पहले, uv install करें, और फिर अपने project में FastAPI जोड़ें:

$ uv add "fastapi[standard]"

---> 100%

नोट: सुनिश्चित करें कि आप सभी टर्मिनलों में काम करने के लिए "fastapi[standard]" को उद्धरण-चिह्नों में रखें।

यदि आप pip का उपयोग करना पसंद करते हैं, तो virtual environment के अंदर fastapi[standard] install करें। वैकल्पिक चरणों के लिए installation guide देखें।

उदाहरण

इसे बनाएँ

main.py file बनाएँ, जिसमें:

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 = None):
    return {"item_id": item_id, "q": q}
या async def का उपयोग करें...

यदि आपका कोड async / await का उपयोग करता है, तो async def का उपयोग करें:

from fastapi import FastAPI

app = FastAPI()


@app.get("/")
async def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
async def read_item(item_id: int, q: str | None = None):
    return {"item_id": item_id, "q": q}

नोट:

यदि आप नहीं जानते, तो docs में async और await के बारे में "जल्दी में?" section देखें।

इसे चलाएँ

सर्वर को इस कमांड से चलाएँ:

$ uv run fastapi dev

 ╭────────── FastAPI CLI - Development mode ───────────╮
 │                                                     │
 │  Serving at: http://127.0.0.1:8000                  │
 │                                                     │
 │  API docs: http://127.0.0.1:8000/docs               │
 │                                                     │
 │  Running in development mode, for production use:   │
 │                                                     │
 │  fastapi run                                        │
 │                                                     │
 ╰─────────────────────────────────────────────────────╯

INFO:     Will watch for changes in these directories: ['/home/user/code/awesomeapp']
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
INFO:     Started reloader process [2248755] using WatchFiles
INFO:     Started server process [2248757]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
fastapi dev कमांड के बारे में...

fastapi dev कमांड आपका main.py file स्वतः पढ़ता है, उसमें FastAPI ऐप का पता लगाता है, और Uvicorn का उपयोग करके सर्वर शुरू करता है।

default रूप से, fastapi dev लोकल development के लिए auto-reload सक्षम करके शुरू होगा।

आप इसके बारे में और पढ़ सकते हैं: FastAPI CLI docs में।

इसे जाँचें

अपने ब्राउज़र में http://127.0.0.1:8000/items/5?q=somequery खोलें।

आपको JSON response इस प्रकार दिखेगी:

{"item_id": 5, "q": "somequery"}

आपने पहले ही एक API बना ली है जो:

  • paths / और /items/{item_id} पर HTTP requests स्वीकार करती है।
  • दोनों paths GET operations लेती हैं (जिन्हें HTTP methods भी कहा जाता है)।
  • path /items/{item_id} में एक path parameter item_id है जो int होना चाहिए।
  • path /items/{item_id} में एक वैकल्पिक str query parameter q है।

इंटरैक्टिव API दस्तावेज़

अब http://127.0.0.1:8000/docs पर जाएँ।

आपको स्वचालित इंटरैक्टिव API दस्तावेज़ीकरण दिखेगा (जो Swagger UI द्वारा प्रदान किया जाता है):

Swagger UI

वैकल्पिक API दस्तावेज़

और अब, http://127.0.0.1:8000/redoc पर जाएँ।

आपको वैकल्पिक स्वचालित दस्तावेज़ीकरण दिखेगा (जो ReDoc द्वारा प्रदान किया जाता है):

ReDoc

उदाहरण उन्नयन

अब PUT request से body प्राप्त करने के लिए main.py file संशोधित करें।

Pydantic की बदौलत, body को standard Python प्रकारों से घोषित करें।

from fastapi import FastAPI
from pydantic import BaseModel

app = FastAPI()


class Item(BaseModel):
    name: str
    price: float
    is_offer: bool | None = None


@app.get("/")
def read_root():
    return {"Hello": "World"}


@app.get("/items/{item_id}")
def read_item(item_id: int, q: str | None = None):
    return {"item_id": item_id, "q": q}


@app.put("/items/{item_id}")
def update_item(item_id: int, item: Item):
    return {"item_name": item.name, "item_id": item_id}

fastapi dev सर्वर स्वतः रीलोड होना चाहिए।

इंटरैक्टिव API दस्तावेज़ उन्नयन

अब http://127.0.0.1:8000/docs पर जाएँ।

  • इंटरैक्टिव API दस्तावेज़ स्वतः अपडेट हो जाएगा, नए body सहित:

Swagger UI

  • "Try it out" बटन पर क्लिक करें, यह आपको parameters भरने और सीधे API के साथ इंटरेक्ट करने की अनुमति देता है:

Swagger UI interaction

  • फिर "Execute" बटन पर क्लिक करें, यूज़र इंटरफ़ेस आपकी API से संवाद करेगा, parameters भेजेगा, परिणाम प्राप्त करेगा और उन्हें स्क्रीन पर दिखाएगा:

Swagger UI interaction

वैकल्पिक API दस्तावेज़ उन्नयन

और अब, http://127.0.0.1:8000/redoc पर जाएँ।

  • वैकल्पिक दस्तावेज़ भी नए query parameter और body को दर्शाएगा:

ReDoc

Recap

संक्षेप में, आप parameters, body, आदि के प्रकार function parameters के रूप में एक बार घोषित करते हैं।

आप यह standard आधुनिक Python प्रकारों से करते हैं।

आपको किसी नई सिंटैक्स, किसी विशेष लाइब्रेरी के methods या classes, आदि सीखने की आवश्यकता नहीं है।

बस standard Python

उदाहरण के लिए, एक int के लिए:

item_id: int

या एक अधिक जटिल Item model के लिए:

item: Item

...और केवल उसी एक घोषणा के साथ आपको मिलता है:

  • Editor support, जिसमें शामिल है:
    • Completion।
    • Type checks।
  • data का वैधीकरण:
    • जब data अमान्य हो तो स्वतः और स्पष्ट त्रुटियाँ।
    • गहराई से nested JSON objects के लिए भी वैधीकरण।
  • इनपुट data का Conversion: नेटवर्क से Python data और प्रकारों में। इनमें से पढ़ना:
    • JSON।
    • Path parameters।
    • Query parameters।
    • Cookies।
    • Headers।
    • Forms।
    • Files।
  • आउटपुट data का Conversion: Python data और प्रकारों से नेटवर्क data (JSON के रूप में) में:
    • Python प्रकारों का conversion (str, int, float, bool, list, आदि)।
    • datetime ऑब्जेक्ट्स।
    • UUID ऑब्जेक्ट्स।
    • डेटाबेस models।
    • ...और बहुत कुछ।
  • स्वचालित इंटरैक्टिव API दस्तावेज़ीकरण, जिनमें 2 वैकल्पिक यूज़र इंटरफ़ेस शामिल हैं:
    • Swagger UI।
    • ReDoc।

पिछले कोड उदाहरण पर लौटते हुए, FastAPI यह करेगा:

  • GET और PUT requests के लिए path में item_id है, यह सत्यापित करेगा।
  • GET और PUT requests के लिए item_id का प्रकार int है, यह सत्यापित करेगा।
    • यदि नहीं है, तो क्लाइंट को एक उपयोगी, स्पष्ट त्रुटि दिखाई देगी।
  • GET requests के लिए यह जाँच करेगा कि q नाम का एक वैकल्पिक query parameter है (जैसे http://127.0.0.1:8000/items/foo?q=somequery)।
    • क्योंकि q parameter = None के साथ घोषित है, यह वैकल्पिक है।
    • None के बिना यह required होता (जैसे PUT के मामले में body required है)।
  • /items/{item_id} पर PUT requests के लिए, body को JSON के रूप में पढ़ेगा:
    • यह जाँचेगा कि एक required attribute name है जो str होना चाहिए।
    • यह जाँचेगा कि एक required attribute price है जो float होना चाहिए।
    • यह जाँचेगा कि एक वैकल्पिक attribute is_offer है, जो यदि मौजूद है तो bool होना चाहिए।
    • यह सब गहराई से nested JSON objects के लिए भी काम करेगा।
  • JSON से और JSON में स्वतः convert करेगा।
  • हर चीज़ को OpenAPI के साथ दस्तावेज़ित करेगा, जिसे निम्न द्वारा उपयोग किया जा सकता है:
    • इंटरैक्टिव दस्तावेज़ीकरण प्रणालियाँ।
    • कई भाषाओं के लिए स्वचालित क्लाइंट कोड जनरेशन प्रणालियाँ।
  • सीधे 2 इंटरैक्टिव दस्तावेज़ीकरण web interfaces प्रदान करेगा।

हमने केवल सतह को छुआ है, लेकिन आपको पहले ही समझ आ गया होगा कि यह सब कैसे काम करता है।

इस पंक्ति को बदलकर देखें:

    return {"item_name": item.name, "item_id": item_id}

...यहाँ से:

        ... "item_name": item.name ...

...यहाँ तक:

        ... "item_price": item.price ...

...और देखें कि आपका editor attributes को कैसे auto-complete करेगा और उनके प्रकार जानेगा:

editor support

अधिक features सहित एक अधिक सम्पूर्ण उदाहरण के लिए, ट्यूटोरियल - यूज़र गाइड देखें।

स्पॉइलर अलर्ट: ट्यूटोरियल - यूज़र गाइड में शामिल है:

  • विभिन्न स्थानों से parameters की घोषणा: headers, cookies, form fields और files
  • maximum_length या regex जैसी validation constraints कैसे सेट करें।
  • एक बहुत शक्तिशाली और उपयोग में आसान Dependency Injection सिस्टम।
  • सुरक्षा और प्रमाणीकरण, जिसमें OAuth2 के साथ JWT tokens और HTTP Basic auth का समर्थन शामिल है।
  • गहराई से nested JSON models घोषित करने की अधिक उन्नत (पर समान रूप से आसान) तकनीकें (Pydantic की बदौलत)।
  • Strawberry और अन्य लाइब्रेरीज़ के साथ GraphQL एकीकरण।
  • कई अतिरिक्त features (Starlette की बदौलत) जैसे:
    • WebSockets
    • HTTPX और pytest पर आधारित अत्यंत आसान टेस्ट्स
    • CORS
    • Cookie Sessions
    • ...आदि।

अपनी ऐप deploy करें (वैकल्पिक)

आप वैकल्पिक रूप से अपनी FastAPI ऐप को FastAPI Cloud पर एक ही कमांड से deploy कर सकते हैं। 🚀

$ uv run fastapi deploy

Deploying to FastAPI Cloud...

✅ Deployment successful!

🐔 Ready the chicken! Your app is ready at https://myapp.fastapicloud.dev

CLI आपकी FastAPI application को स्वतः पहचान लेगा और उसे क्लाउड पर deploy करेगा। यदि आप logged in नहीं हैं, तो प्रमाणीकरण प्रक्रिया पूरी करने के लिए आपका ब्राउज़र खुलेगा।

बस इतना ही! अब आप उस URL पर अपनी ऐप एक्सेस कर सकते हैं। ✨

FastAPI Cloud के बारे में

FastAPI Cloud को FastAPI के ही लेखक और team ने बनाया है।

यह न्यूनतम प्रयास में किसी API को बनाने, deploy करने और एक्सेस करने की प्रक्रिया को सरल बनाता है।

यह FastAPI के साथ ऐप्स बनाने के उसी developer experience को उन्हें क्लाउड में deploy करने तक लाता है। 🎉

FastAPI Cloud, FastAPI and friends ओपन सोर्स projects के लिए मुख्य प्रायोजक और फंडिंग प्रदाता है। ✨

अन्य क्लाउड प्रदाताओं पर deploy करें

FastAPI ओपन सोर्स है और standards पर आधारित है। आप FastAPI ऐप्स को किसी भी क्लाउड प्रदाता पर deploy कर सकते हैं।

अपने क्लाउड प्रदाता के गाइड्स का पालन करें और उनके साथ FastAPI ऐप्स deploy करें। 🤓

प्रदर्शन

स्वतंत्र TechEmpower बेंचमार्क दिखाते हैं कि Uvicorn के तहत चलने वाले FastAPI applications उपलब्ध सबसे तेज़ Python frameworks में से एक हैं, केवल Starlette और Uvicorn (जो FastAPI द्वारा आंतरिक रूप से उपयोग किए जाते हैं) से नीचे। (*)

इसके बारे में अधिक समझने के लिए, बेंचमार्क्स section देखें।

निर्भरताएँ

FastAPI, Pydantic और Starlette पर निर्भर करता है।

standard निर्भरताएँ

जब आप uv add "fastapi[standard]" के साथ FastAPI install करते हैं, तो यह standard समूह की वैकल्पिक निर्भरताओं के साथ आता है:

Pydantic द्वारा उपयोग किया गया:

Starlette द्वारा उपयोग किया गया:

  • httpx - यदि आप TestClient का उपयोग करना चाहते हैं तो required।
  • jinja2 - यदि आप default टेम्पलेट कॉन्फ़िगरेशन का उपयोग करना चाहते हैं तो required।
  • python-multipart - यदि आप form "parsing" का समर्थन करना चाहते हैं, request.form() के साथ, तो required।

FastAPI द्वारा उपयोग किया गया:

  • uvicorn - उस सर्वर के लिए जो आपकी application को लोड और सर्व करता है। इसमें uvicorn[standard] शामिल है, जिसमें high performance serving के लिए कुछ निर्भरताएँ (जैसे uvloop) शामिल हैं।
  • fastapi-cli[standard] - fastapi कमांड प्रदान करने के लिए।
    • इसमें fastapi-cloud-cli शामिल है, जो आपको अपनी FastAPI application को FastAPI Cloud पर deploy करने की अनुमति देता है।

standard निर्भरताओं के बिना

यदि आप standard वैकल्पिक निर्भरताओं को शामिल नहीं करना चाहते, तो आप uv add "fastapi[standard]" के बजाय uv add fastapi के साथ install कर सकते हैं।

fastapi-cloud-cli के बिना

यदि आप standard निर्भरताओं के साथ लेकिन fastapi-cloud-cli के बिना FastAPI install करना चाहते हैं, तो uv add "fastapi[standard-no-fastapi-cloud-cli]" के साथ install कर सकते हैं।

अतिरिक्त वैकल्पिक निर्भरताएँ

कुछ अतिरिक्त निर्भरताएँ हैं जिन्हें आप install करना चाहेंगे।

अतिरिक्त वैकल्पिक Pydantic निर्भरताएँ:

  • pydantic-settings - सेटिंग्स प्रबंधन के लिए।
  • pydantic-extra-types - Pydantic के साथ उपयोग करने के लिए अतिरिक्त प्रकारों हेतु।

अतिरिक्त वैकल्पिक FastAPI निर्भरताएँ:

  • orjson - यदि आप ORJSONResponse उपयोग करना चाहते हैं तो required।
  • ujson - यदि आप UJSONResponse उपयोग करना चाहते हैं तो required।

लाइसेंस

यह project MIT license की शर्तों के अंतर्गत लाइसेंस प्राप्त है।