از صفر تا Fastapi Hero: ماجراجویی HNG12 مرحله 0 من

از صفر تا Fastapi Hero: مرحله پس زمینه من 0 ماجراجویی
سلام ، جادوگران پس زمینه دیگر و صلیبیان کد!
به سفر پشت صحنه من به تکالیف HNG12 Stage 0 خوش آمدید. امروز ، من شما را از طریق ایجاد یک برنامه FastAPI براق که سه چیز جالب را انجام می دهد ، شما را سوار بر روی یک چرخ دستی می کنم:
- ایمیل HNG ثبت شده من را برمی گرداند
- DateTime فعلی UTC را با فرمت ISO 8601 نشان می دهد
- URL GitHub این پروژه عالی را به اشتراک می گذارد
نوشیدنی مورد علاقه خود را بگیرید و بیایید شیرجه بزنیم!
مأموریت: از من خواسته شد چه کاری انجام دهم؟
چالش Crystal Clear بود: یک API عمومی بسازید که یک بسته نرم افزاری JSON شسته و رفته حاوی:
- ایمیل: (بله ، ایمیل HNG ثبت شده من!)
- DateTime فعلی: درست در UTC ، درست وقتی می پرسید.
- URL GitHub: پیوندی به جایی که همه جادوها اتفاق می افتد (یعنی Repo پروژه).
من تصمیم گرفتم پیتون وت فریپی از آنجا که آنها ایجاد و استقرار API ها را مانند پیاده روی در پارک احساس می کنند-با چند حلقه حلقه غیر منتظره برای تفریح.
آستین های من را بچرخانید: تنظیم API
من با ایجاد یک محیط مجازی شروع کردم (زیرا چه کسی عاشق یک جعبه ماسه ای خوب برای بازی در آن نیست؟) ، سپس Fastapi و Uvicorn را نصب کردم. با کلاه برنامه نویسی خود و قهوه در دست ، شاهکار زیر را ساختم:
from fastapi import FastAPI # Import our trusty web framework
from fastapi.middleware.cors import CORSMiddleware # For smooth cross-origin magic
from datetime import datetime, timezone # To grab the current time in UTC
app = FastAPI() # Creating our FastAPI app instance
# Adding CORS middleware to handle all those cross-origin requests
app.add_middleware(
CORSMiddleware,
allow_origins=["*"], # Open to all domains (tweak for production if needed)
allow_credentials=True, # Cookies and authorization headers? Yes, please!
allow_methods=["GET"], # We only need GET since we're all about simple retrieval
allow_headers=["*"], # Let every header join the party
)
@app.get("/") # The root endpoint of our API
def get_info():
return {
"email": "joseph.adamu.it@gmail.com", # My registered HNG email
"current_datetime": datetime.now(timezone.utc).isoformat(), # Fresh UTC datetime
"github_url": "https://github.com/Joe-encodes/fastapi-project" # Link to my GitHub repo
}
if __name__ == "__main__": # Only run this if the script is executed directly
import uvicorn # Uvicorn: the lightweight Python web server that brings our API to life
uvicorn.run(app, host="0.0.0.0", port=8000)
اینجا چه اتفاقی می افتد؟
- فریپی گره جادویی ما است که کد را به یک API زنده تبدیل می کند.
- ظروف وسط تضمین می کند که API ما از هر دامنه ای دوستانه و در دسترس است (زیرا اشتراک گذاری مراقب است).
- در
get_info
نقطه پایانی آیا تمام وزنه برداری سنگین را با بسته بندی ایمیل من ، زمان فعلی UTC و پیوند GitHub به یک هدیه JSON شسته و رفته انجام می دهد.
آزمایش آبها
بعد از برنامه نویسی ، من API را به صورت محلی با UVicorn شلیک کردم و آن را روی مرورگر و با فرفری آزمایش کردم. تماشای پاسخ JSON ظاهر می شود مانند دیدن یک غذای خوب پخته شده از فر بیرون می آید-رضایت بخش و اوه و بسیار معتبر!
uvicorn main:app --reload
مرورگر خود را به http://127.0.0.1:8000 باز کنید و چشمان خود را به جادو جشن دهید.
استقرار: آن را به صورت زنده در رندر انجام دهید
هنگامی که تأیید کردم همه چیز کاملاً روی دستگاه محلی خود کار می کند ، کد را به GitHub فشار دادم و مخزن را به ارائه وصل کردم. با یک زن و شوهر تنظیمات:
-
فرمان ساخت:
pip install -r requirements.txt
-
فرمان شروع:
uvicorn main:app --host 0.0.0.0 --port 10000
… و voilà! API مستقر و در دسترس جهان بود.
دروس ، خنده و یادگیری
این چیزی است که من در این سواری وحشی آموخته ام:
- Fastapi یک انفجار است: این برای توسعه دهندگان سریع ، سرگرم کننده و بسیار دوستانه است.
- cors بسیار مهم است: رسیدگی به درخواست های متقاطع ، تضمین می کند که API شما به همان اندازه که قصد دارید باز و در دسترس باشد.
- استقرار می تواند هیجان انگیز باشد: دیدن کد شما به صورت زنده مانند تماشای بچه خود برای اولین بار است که دوچرخه سواری می کند-همه چیز را به طور یکباره و عصبی و عصبی می کند.
پیچیدن
این تکلیف HNG12 Stage 0 فقط مربوط به نوشتن کد نبوده است-این یک ماجراجویی در حل مسئله ، استقرار و جشن گرفتن هر پیروزی کوچک در طول راه بود. امیدوارم سفر من به شما الهام بخش باشد تا سرگرمی را در توسعه پس زمینه در آغوش بگیرید و محدودیت های خود را تحت فشار قرار دهید.
تا دفعه بعد ، برنامه نویسی را نگه دارید ، کنجکاو باشید و ممکن است API شما همیشه 200 خوشحال برگردد!
با من ارتباط برقرار کنید
برنامه نویسی مبارک ، همه!