FastAPI
Open in Telegram
Sharing specialized content about the FastAPI framework, Python, and FastAPI deployment in the cloud. مطالب تخصصی فریم ورک FastAPI . پایتون محتوای فارسی و انگلیسی Discussion: https://t.me/fastapi_persian #fastapi #python #cloud
Show more670
Subscribers
No data24 hours
-37 days
+330 days
Posts Archive
670
در FastAPI، میتوانید از Depends برای مدیریت وابستگیها و امنیت استفاده کنید.
مثلاً اگر بخواهید یک توکن JWT را برای احراز هویت بررسی کنید، میتوانید آن را به عنوان یک وابستگی تعریف کنید:
from fastapi import Depends, HTTPException, Security
from fastapi.security import HTTPBearer, HTTPAuthorizationCredentials
security = HTTPBearer()
def get_current_user(credentials: HTTPAuthorizationCredentials = Depends(security)):
token = credentials.credentials
if token != "valid-token":
raise HTTPException(status_code=401, detail="Invalid token")
return {"user_id": 123, "role": "admin"}
@app.get("/protected")
def protected_route(user: dict = Depends(get_current_user)):
return {"message": "You have access", "user": user}
🔹 چرا Depends مهم است؟
• کد را ماژولار و قابل تست میکند.
• امنیت و احراز هویت را میتوان به سادگی در مسیرهای مختلف اعمال کرد.
• مدیریت وابستگیها را ساده و تمیز نگه میدارد.
💡 اگر از FastAPI برای APIهای امن استفاده میکنی، Depends یکی از ابزارهای قدرتمند برای احراز هویت و مدیریت دسترسی است!670
در این کانال نکته های مربوط به مهندسی داده انتشاد داده میشود و با ابزارهای دیگر این حرفه آشنا میشوید، بدیهی است که استفاده از کلاد نقش بسیار پررنگی در این حرفه دارد و یکی از ابزارهای بسیار کاربردی آن snowflake است که بر روی سرویس دهنده های کلاد اجرا میشود.
https://t.me/data_eng_hub
670
مهندسی داده (Data Engineering) به زبان ساده، فرآیند ساخت و مدیریت زیرساختهای دادهای است تا دادهها را از منابع مختلف جمعآوری، پردازش و به شکل قابل استفاده برای تحلیل و تصمیمگیری تبدیل کند.
در واقع، مهندسان داده یک پایپلاین دادهای (Data Pipeline) طراحی و پیادهسازی میکنند که شامل مراحل زیر است:
1. استخراج داده (Extract) از منابع مختلف (دیتابیسها، APIها، فایلها و …)
2. تبدیل و پاکسازی داده (Transform) شامل پردازش، استانداردسازی، حذف دادههای نامعتبر و تکمیل دادههای ناقص
3. بارگذاری داده (Load) در یک پایگاه داده یا انبار داده (Data Warehouse) برای تحلیل و گزارشگیری
4. ارائه داده به شکل بینشپذیر (Insight) از طریق داشبوردها، گزارشها و مدلهای تحلیلی
در نهایت، هدف مهندسی داده این است که دادههای خام را به دادههای ارزشمند و معنادار تبدیل کند که کسبوکارها بتوانند از آن برای تصمیمگیری بهتر استفاده کنند.
670
یکی از ابزارهای مفید در مهندسی داده، FastAPI است که یک فریمورک سریع و مدرن برای ساخت APIها در پایتون محسوب میشود. در فرآیند مهندسی داده، FastAPI میتواند نقش مهمی در ایجاد و مدیریت خدمات دادهای (Data Services) ایفا کند.
چگونه FastAPI در مهندسی داده مفید است؟
1. ایجاد API برای دریافت و ارسال داده
• میتوان از FastAPI برای طراحی APIهای RESTful جهت جمعآوری و دریافت داده از منابع مختلف استفاده کرد.
2. واسطی بین پایپلاین داده و ابزارهای تحلیل
• بعد از پردازش و تمیزکاری دادهها، FastAPI میتواند یک لایه API فراهم کند که دادههای پردازششده را در اختیار ابزارهای تحلیل داده و داشبوردها قرار دهد.
3. اتصال به پایگاههای داده
• FastAPI بهراحتی با پایگاههای داده SQL و NoSQL مانند PostgreSQL، MongoDB، Redis و Snowflake ارتباط برقرار میکند و میتواند دادهها را در آنها ذخیره یا بازیابی کند.
4. مدیریت پردازش دادهها بهصورت بلادرنگ (Real-Time)
• در سیستمهای دادهای که نیاز به پردازش آنی دارند (مثل استریم داده از Kafka یا RabbitMQ)، میتوان از FastAPI برای ایجاد سرویسهای پردازش لحظهای استفاده کرد.
5. پشتیبانی از پردازشهای پسزمینه و پردازش موازی
• با قابلیتهای async/await، FastAPI میتواند درخواستهای دادهای را سریعتر پردازش کند و بهینهتر عمل کند.
نتیجهگیری
FastAPI یک ابزار ایدهآل برای ساخت لایه سرویس داده در پایپلاینهای مهندسی داده است. این فریمورک به کمک سرعت بالا، پشتیبانی از async، و ارتباط آسان با پایگاههای داده، میتواند دادههای پردازششده را به شکلی امن و سریع در اختیار تحلیلگران و داشبوردهای دادهای قرار دهد.
670
Don't implement FastAPI User management, authentication, authorization or permissions from scratch, use one of these amazing repositories
1. FastApi Users - 2.4k ⭐️ on Github
Ready-to-use and customizable users management for FastAPI
https://lnkd.in/ezv_a96H
Created by: François Voron
2. AuthX - 407 ⭐️ on Github
Ready to use and Customizable Authentications and Authorizations Management for FastAPI ⚡️
https://lnkd.in/ep43UbTJ
Created by: Yasser Tahiri
3. FastAPI simple security - 154 ⭐️ on Github
API-key based security utilities for FastAPI, focused on simplicity of use
https://lnkd.in/eRBTn6JT
4. FastAPI Security - 110 ⭐️ on Github
Implements authentication and authorization as FastAPI
https://lnkd.in/e27BtQQB
Created by: Jacob Magnusson
5. FastAPI Permissions - 316 ⭐️ on Github
Row level security for FastAPI framework
https://lnkd.in/eeuR2Wje
6. FastAPI JWT Auth - 470 ⭐️ on Github
FastAPI extension that provides JWT Auth support (secure, easy to use, and lightweight)
https://lnkd.in/e9nAEBhX
Created by: Nyoman Pradipta Dewantara
7. FastAPI Login - 414 ⭐️ on Github
FastAPI-Login tries to provide similar functionality as Flask-Login does.
https://lnkd.in/ehGqyxUZ
8. Fastapi Azure Auth - 220 ⭐️ on Github
Easy and secure implementation of Azure AD for your FastAPI APIs 🔒 B2C, single- and multi-tenant support.
https://lnkd.in/eXYAtaYF
Created by: Jonas Krüger Svensson
9. Fastapi Cloudauth - 254 ⭐️ on Github
Simple integration between FastAPI and cloud authentication services (AWS Cognito, Auth0, Firebase Authentication).
https://lnkd.in/ercemDdH
670
پیکل یه ماجول برای سریالایز کردن آبجکت ها است اما حواستون باشه چیزی رو که نمیدونید چیه باهاش unpickle نکنید.
670
اگر قبلا با ruff (لینتر پایتون نوشته شده با زبان راست) محصول ASTRAL کار کردید .
همین شرکت یه ابزار مدیریت پکیج به نام UV با زبان راست نوشته که از Poetry هم چندین برابر سریعتره و برای ویندوز، مک و لینوکس قابل نصب است.
https://docs.astral.sh/uv/
670
دنبال یه فونت مناسب برای vscode بودم که رایگان باشه و فونت Ligatures داشته باشه . به این برخورد کردم .
https://www.jetbrains.com/lp/mono/#how-to-install
670
⚡️A new Python-specific guide to Docker just dropped
https://docs.docker.com/language/python/containerize/
670
نتایج نظر سنجی سال ۲۰۲۴ stack overflow با ظاهری جذاب منتشر شد
https://survey.stackoverflow.co/2024/
670
⚠️ امروز اگه به خاطر اشتباه ارتقا ویندوز بلو اسکرین گرفتید
کامپیوتر را در حالت
safemode
بوت کنید و سپس فولدر زیر را حذف کنید
این یک مشکل فنی از سمت شرکت CrowdStrike است .
C\Windows\System32\drivers\CrowdStrike
670
چند تا بازی باحال برای یادگیری SQL - با تشکر از اشکان
Let's dive into SQL games for those who wanna learn more
These interactive games are a fun and effective way to sharpen your SQL skills.
Whether you're a beginner or looking to level up, give these a try:
https://lost-at-sql.therobinlord.com/
https://mystery.knightlab.com/
https://sqlpd.com/
https://sql-island.informatik.uni-kl.de/
#SQL
670
همین سایت زشت ۶۶۰ میلیون دلار درآمد داره .. و با تکنولوژيهای اپن سورس کار میکنه ..
مثلا Perl .. دنبال تکنولوژي نباشید ببینید چی برای بیزنس شما جواب میده 😉
https://www.craigslist.org/about/open_source
670
اپلیکیشنهای FastAPI را میتوان به روشهای مختلفی اجرا کرد که بستگی به نیازهای شما دارد. بیایید ببینیم که چه زمانی ممکن است از Gunicorn استفاده کنیم و چه زمانی ممکن است نیازی به آن نباشه:
FastAPI با Uvicorn
Uvicorn: FastAPI برای اجرا با سرورهای ASGI مانند Uvicorn طراحی شده است. Uvicorn یک سرور سریع و سبک است که برای سرویسدهی به اپلیکیشنهای FastAPI عالی است. شما میتوانید اپلیکیشنهای FastAPI را مستقیماً با Uvicorn اجرا کنید و این تنظیمات معمولاً برای توسعه و استقرار در مقیاس کوچکتر مناسب است.
FastAPI با Gunicorn + Uvicorn
Gunicorn: Gunicorn یک pre-fork سرور مدل است که اغلب با اپلیکیشنهای WSGI استفاده میشود. با این حال، میتوان آن را با اپلیکیشنهای ASGI، از جمله FastAPI، به عنوان یک مدیریت فرایند استفاده کرد. این اغلب برای مقیاسدهی اپلیکیشنهای FastAPI با مدیریت چندین فرایند ورکر انجام میشود.
زمان استفاده از Gunicorn: اگر انتظار ترافیک بالا دارید یا نیاز به مقیاسدهی با چندین ورکر دارید، استفاده از Gunicorn با ورکرهای Uvicorn ممکن است یک گزینه خوب باشد. این تنظیمات یک سیستم مدیریت فرایند قویتر فراهم میکند و میتواند همزمانی (concurrency) را افزایش دهد.
⚡️معمولا وقتی قرار است یک سرور داشته باشید و بخواهید چند تا نسخه مختلف به صورت ورکر اجرا کنید از Gunicorn به صورت توکار در کانتاینر استفاده کنید.
⚡️اگر روی کلاسترهای مبتنی بر کوبرنتیز میخواهید دیپلوی کنید به دلیل اینکه کار مدیریت و راه اندازی ورکرها را به خود K8S. دادید احتیاجی به استفاده از ورکرهای توکار نیست مگر اینکه خود اپلیکیشن ذاتا نیازی به ورکر اضافه داشته باشه.
670
یکی از کاربران سوال پرسیده بود که مگه نمیگند باید موقع دیپلوی FastAPI app از Gunicorn به همراه Uvicorn استفاده بشه ؟ برای سرویسهای مبتنی بر K8S مثل AKS و Azure Container Apps و .. به چه صورته؟ بازم Gunicorn احتیاج است؟ در ادامه توضیح خواهم داد...
