دکوراتورها (Decorators)
دکوراتورها در چارچوب کیمیا ابزاری قدرتمند برای تعریف مسیرهای API، مستندسازی و کنترل دسترسی هستند.
دستهبندی دکوراتورها
دکوراتورهای مسیر API
دکوراتورهایی برای تعریف مسیرهای HTTP مانند api.get, api.post, api.put و غیره.
دکوراتورهای Swagger
دکوراتورهایی برای مستندسازی API در Swagger/OpenAPI مانند swagger.summary, swagger.parameters و غیره.
دکوراتورهای کنترل دسترسی
دکوراتورهایی برای بررسی مجوزهای کاربر مانند check.adminAccess, check.systemAccess.
نحوه استفاده
دکوراتورها را میتوان به صورت ترکیبی استفاده کرد:
export class UserApi extends ApplicationApi {
@swagger.summary('دریافت لیست کاربران')
@swagger.parametersWithPagination([
{ name: 'search', type: 'string' }
])
@swagger.OkArrayResponseTSInterface('UserInterface')
@api.get('/users')
async getUsers() {
return await this.getAllUsers();
}
@check.adminAccess('دسترسی ادمین لازم است')
@swagger.summary('ایجاد کاربر جدید')
@swagger.bodyParameterWithTSInterface('UserCreateInterface')
@swagger.OkResponseTSInterface('UserInterface')
@api.post('/users')
async createUser(@body() userData: UserCreateInterface) {
return await this.createNewUser(userData);
}
}
نکات مهم
- دکوراتورها به ترتیب از بالا به پایین اجرا میشوند
- دکوراتورهای کنترل دسترسی قبل از اجرای متد بررسی میشوند
- دکوراتورهای Swagger فقط برای مستندسازی استفاده میشوند و روی عملکرد API تأثیر ندارند