ResourceManager Manajemen Resource
Fitur manajemen resource NocoBase secara otomatis mengkonversi tabel data (Collection) dan asosiasi (Association) menjadi resource, dan menyediakan beberapa tipe operasi bawaan, sehingga Anda dapat dengan cepat membangun REST API. Sedikit berbeda dengan REST API tradisional, operasi resource NocoBase tidak langsung bergantung pada method HTTP request, tetapi menentukan operasi spesifik yang dieksekusi melalui definisi :action secara eksplisit.
Resource yang Dihasilkan Otomatis
NocoBase secara otomatis akan mengkonversi Collection dan Association yang didefinisikan dalam database menjadi resource. Misalnya mendefinisikan dua collection posts dan tags:
Sistem akan secara otomatis menghasilkan resource berikut:
- Resource
posts - Resource
tags - Resource asosiasi
posts.tags
Contoh request:
Operasi resource NocoBase tidak langsung bergantung pada method HTTP request, tetapi menentukan operasi yang dieksekusi melalui definisi :action secara eksplisit.
Operasi Resource
NocoBase memiliki beberapa tipe operasi bawaan, yang mencakup skenario bisnis umum.
Operasi CRUD Dasar
Operasi Relasi
Parameter Operasi
Parameter operasi umum termasuk:
filter: Kondisi queryvalues: Nilai yang diaturfields: Menentukan field yang dikembalikanappends: Menyertakan data terkaitexcept: Mengecualikan fieldsort: Aturan sortingpage,pageSize: Parameter paginationpaginate: Apakah mengaktifkan paginationtree: Apakah mengembalikan struktur treewhitelist,blacklist: Whitelist/blacklist fieldupdateAssociationValues: Apakah memperbarui nilai asosiasi
Operasi Resource Kustom
Anda dapat menggunakan registerActionHandlers untuk mendaftarkan operasi tambahan untuk resource yang ada, mendukung operasi global dan operasi resource khusus.
Mendaftarkan Operasi Global
Mendaftarkan Operasi Khusus Resource
Contoh request:
Aturan penamaan: resourceName:actionName, saat menyertakan asosiasi gunakan sintaks dot (posts.comments).
Resource Kustom
Jika Anda perlu menyediakan resource yang tidak terkait dengan tabel data, dapat menggunakan resourceManager.define untuk mendefinisikan:
Method request sama dengan resource otomatis:
GET /api/app:getInfoPOST /api/app:getInfo(default mendukung GET/POST sekaligus)
Middleware Kustom
Menggunakan resourceManager.use() dapat mendaftarkan middleware global. Misalnya middleware logging global:
Property Khusus Context
Dapat memasuki middleware atau action di layer resourceManager, berarti resource tersebut pasti ada. Pada saat ini Anda dapat mengakses konteks request melalui property berikut:
ctx.action
ctx.action.actionName: Nama operasictx.action.resourceName: Mungkin berupa collection atau associationctx.action.params: Parameter operasi
ctx.dataSource
Objek data source saat ini
ctx.getCurrentRepository()
Objek repository saat ini
Cara Mendapatkan Objek resourceManager dari Data Source yang Berbeda
resourceManager milik data source, Anda dapat mendaftarkan operasi secara terpisah untuk data source yang berbeda.
Data Source Utama
Data source utama dapat langsung menggunakan app.resourceManager:
Data Source Lain
Data source lain dapat memperoleh instance yang sesuai melalui dataSourceManager:
Iterasi Semua Data Source
Jika perlu mengeksekusi operasi yang sama untuk semua data source, dapat menggunakan dataSourceManager.afterAddDataSource untuk iterasi:
Tautan Terkait
- Cheatsheet Resource API — Method signature lengkap dan penggunaan MultiRecordResource / SingleRecordResource client
- ACL Kontrol Hak Akses — Mengkonfigurasi hak akses role dan kontrol akses untuk operasi resource
- Context Konteks Request — Mendapatkan informasi konteks dalam handler request
- Middleware — Menambahkan logika intersepsi dan pemrosesan untuk request
- DataSourceManager Manajemen Data Source — Mengelola beberapa data source dan resource manager-nya
- Collections Tabel Data — Hubungan mapping otomatis Collection dengan Resource

