3.1 KiB
3.1 KiB
راهنمای فارسی Swagger پروژه
این پروژه حالا یک مستندات Swagger/OpenAPI داخلی دارد که از APIهای فعلی کد تولید شده است.
مسیرها
- رابط Swagger UI:
/swagger - خروجی خام OpenAPI JSON:
/api/openapi
کاربرد هر مسیر
/swaggerبرای مشاهده، جستجو و تست Endpointها در مرورگر است./api/openapiبرای اتصال ابزارهای دیگر مثل Postman Import، Redoc، یا CI/CD مناسب است.
نحوه استفاده
- پروژه را اجرا کنید.
- در مرورگر به
/swaggerبروید. - از روی Tagها Endpoint مورد نظر را باز کنید.
- در صورت نیاز روی
Try it outبزنید و ورودی را پر کنید. - برای Endpointهای نیازمند احراز هویت، بهتر است ابتدا در همان مرورگر داخل برنامه لاگین کرده باشید.
احراز هویت
این پروژه از NextAuth با Session Cookie استفاده میکند.
- بیشتر APIهای کاربری با Session کار میکنند.
- APIهای ادمین علاوه بر Session، نقش
ADMINهم میخواهند. - در Swagger نیازی به Bearer Token نیست، چون درخواستها روی همان Origin اجرا میشوند و Cookie مرورگر قابل استفاده است.
دستهبندی Endpointها
Auth: ثبتنام، Session و مسیرهای پایه NextAuthUser: پروفایل و تست SessionTeam: ساخت و مدیریت تیم فانتزیPlayers: دریافت و مدیریت بازیکنانCountries: دریافت و مدیریت کشورهاMatches: بازیها، آمار، رویدادها و محاسبه امتیازRoundsوGameweeks: مدیریت بازههای مسابقاتQuiz: کوئیز روزانه، نتایج و قرعهکشیGolden Cards: کارتهای طلاییPayment: ساخت و تایید پرداختUpload: آپلود عکس بازیکن
نکات مهم
- مسیر
/api/payment/verifyپاسخ JSON نمیدهد و کاربر را Redirect میکند. - مسیر
/api/upload/player-imageازmultipart/form-dataاستفاده میکند. - برخی مسیرها مثل
POST /api/admin/matches/{id}/calc-pointsاز دادههای ثبتشده قبلی استفاده میکنند و بدنه ورودی ندارند. - مستندات بر اساس Routeهای فعلی پروژه نوشته شده؛ اگر API جدید اضافه شود باید
lib/openapi.tsهم بهروزرسانی شود.
نگهداری مستندات
فایل اصلی مستندات:
lib/openapi.ts
Routeهای خروجی:
app/api/openapi/route.tsapp/swagger/route.ts
اگر API جدیدی اضافه کردید:
- مسیر جدید را در
pathsاضافه کنید. - در صورت نیاز Schema مشترک را در
components.schemasتعریف کنید. - اگر Endpoint نیازمند Session است، از Security فعلی استفاده کنید.