این پروژه یک برنامه ساده FastAPI برای مدیریت دادههای دانشگاه است. شامل قابلیتهای مدیریت دانشجویان، دورهها و اطلاعات ثبتنام میباشد. هدف اصلی، نمایش نحوه ساخت یک API RESTful با استفاده از FastAPI است.
-
مخزن را کلون کنید:
git clone https://github.com/ThereWasLuna/fastapi-uni.git cd fastapi-uni -
یک محیط مجازی ایجاد و فعال کنید:
python -m venv env source env/bin/activate # در ویندوز `env\Scripts\activate` استفاده کنید
-
وابستگیها را نصب کنید:
pip install -r requirements.txt
-
سرور را اجرا کنید:
uvicorn main:app --reload
-
به آدرس زیر بروید:
http://127.0.0.1:8000
این فایل نقطه شروع برنامه است. شامل تنظیمات اصلی FastAPI، تعریف روترها و نقاط پایانی اصلی است. در اینجا برنامه FastAPI ایجاد و روترها به آن متصل میشوند.
این فایل شامل مدلهای دیتابیس است که با استفاده از SQLAlchemy تعریف شدهاند. این مدلها ساختار جداول دیتابیس را تعیین میکنند. برای مثال، مدلهای Student، Course و Enrollment.
این فایل شامل اسکیمای Pydantic برای اعتبارسنجی دادهها است. اسکیمای Pydantic برای تعریف ساختار و نوع دادههای ورودی و خروجی استفاده میشود. برای مثال، StudentCreate و StudentUpdate.
این فایل شامل عملیات CRUD (ایجاد، خواندن، بروزرسانی، حذف) برای تعامل با دیتابیس است. توابعی برای انجام عملیاتهای مختلف روی جداول دیتابیس، مانند ایجاد دانشجو، دریافت لیست دانشجویان و غیره در اینجا تعریف شدهاند.
این فایل تنظیمات اتصال به دیتابیس را شامل میشود. اینجا میتوان تنظیمات مربوط به موتور SQLAlchemy و ایجاد جلسه دیتابیس را یافت.
این پوشه شامل فایلهای مربوط به روترهای API است که هر کدام به یکی از بخشهای اصلی (دانشجویان، دورهها و ثبتنام) اختصاص دارند.
student.py: شامل نقاط پایانی مربوط به مدیریت دانشجویان، مانند ایجاد، خواندن، بروزرسانی و حذف دانشجو.course.py: شامل نقاط پایانی مربوط به مدیریت دورهها، مانند ایجاد، خواندن، بروزرسانی و حذف دوره.enrollment.py: شامل نقاط پایانی مربوط به مدیریت ثبتنامها، مانند ثبتنام یک دانشجو در یک دوره و حذف ثبتنام.
این پوشه شامل تستهای واحد برای اپلیکیشن است.
test_main.py: شامل تستهایی برای اطمینان از عملکرد صحیح نقاط پایانی و منطق برنامه.
این فایل شامل لیست وابستگیهای پروژه است که با استفاده از pip نصب میشوند. این وابستگیها شامل بستههای مورد نیاز برای اجرای FastAPI، SQLAlchemy و دیگر کتابخانهها است.
این فایل، راهنمای اصلی پروژه است که اطلاعات کلی درباره پروژه، نحوه نصب، استفاده و مشارکت در توسعه آن را ارائه میدهد.
GET /students: دریافت لیست دانشجویان.POST /students: ایجاد دانشجوی جدید.GET /students/{student_id}: دریافت اطلاعات یک دانشجو.PUT /students/{student_id}: بروزرسانی اطلاعات یک دانشجو.DELETE /students/{student_id}: حذف یک دانشجو.
GET /courses: دریافت لیست دورهها.POST /courses: ایجاد دوره جدید.GET /courses/{course_id}: دریافت اطلاعات یک دوره.PUT /courses/{course_id}: بروزرسانی اطلاعات یک دوره.DELETE /courses/{course_id}: حذف یک دوره.
GET /enrollments: دریافت لیست ثبتنامها.POST /enrollments: ثبتنام یک دانشجو در یک دوره.DELETE /enrollments/{enrollment_id}: حذف ثبتنام.