پرش به مطلب اصلی

دکوراتورهای مسیر API

دکوراتورهای مسیر API برای تعریف مسیرهای HTTP در کلاس‌های API استفاده می‌شوند.

api.get

برای تعریف مسیر GET استفاده می‌شود.

@api.get('/users')
async getUsers() {
// کد پیاده‌سازی
}

پارامترها

  • path: مسیر API (اختیاری، پیش‌فرض نام تابع)
  • name: نام مسیر (اختیاری)
@api.get({ path: '/users', name: 'getUsers' })
async getUsers() {
// کد پیاده‌سازی
}

api.post

برای تعریف مسیر POST استفاده می‌شود.

@api.post('/users')
async createUser() {
// کد پیاده‌سازی
}

api.put

برای تعریف مسیر PUT استفاده می‌شود.

@api.put('/users/{id}')
async updateUser() {
// کد پیاده‌سازی
}

api.delete

برای تعریف مسیر DELETE استفاده می‌شود.

@api.delete('/users/{id}')
async deleteUser() {
// کد پیاده‌سازی
}

api.patch

برای تعریف مسیر PATCH استفاده می‌شود.

@api.patch('/users/{id}')
async patchUser() {
// کد پیاده‌سازی
}

api.some

برای تعریف چندین متد HTTP برای یک مسیر استفاده می‌شود.

@api.some(['get', 'post'], '/users')
async handleUsers() {
// کد پیاده‌سازی
}

api.includeCoreMiddlewares

برای اضافه کردن middlewareهای اصلی به مسیر استفاده می‌شود.

@api.includeCoreMiddlewares(['Authentication', 'RateLimit'])
@api.get('/protected')
async protectedRoute() {
// کد پیاده‌سازی
}

api.excludeCoreMiddlewares

برای حذف middlewareهای اصلی از مسیر استفاده می‌شود.

@api.excludeCoreMiddlewares(['Authentication'])
@api.get('/public')
async publicRoute() {
// کد پیاده‌سازی
}

api.includeFormData

برای اضافه کردن میان افزار FormData (برای آپلود فایل) استفاده می‌شود.

@api.includeFormData()
@api.post('/upload')
async uploadFile() {
// کد پیاده‌سازی
}

api.ignoreAuthentication

برای نادیده گرفتن احراز هویت در مسیر استفاده می‌شود.

@api.ignoreAuthentication()
@api.get('/public-data')
async getPublicData() {
// کد پیاده‌سازی
}

api.rateLimit

برای اعمال محدودیت نرخ درخواست استفاده می‌شود.

@api.rateLimit('strict', 'Too many requests', 429)
@api.get('/limited')
async limitedRoute() {
// کد پیاده‌سازی
}

پارامترها

  • profile: نام پروفایل محدودیت نرخ
  • message: پیام خطا (اختیاری)
  • statusCode: کد وضعیت HTTP (اختیاری)