ctx.request()
Melakukan HTTP request dengan autentikasi di RunJS. Request akan otomatis membawa baseURL, Token, locale, role, dll. dari aplikasi saat ini, dan mengikuti logika interceptor request dan error handling aplikasi.
Skenario Penggunaan
Semua skenario di RunJS yang perlu melakukan remote HTTP request, seperti JSBlock, JSField, JSItem, JSColumn, event flow, linkage, JSAction, dll.
Definisi Tipe
RequestOptions di-extend berdasarkan AxiosRequestConfig dari Axios:
Parameter Umum
URL Gaya Resource
API resource NocoBase mendukung bentuk singkat resource:action:
Path relatif akan digabungkan dengan baseURL aplikasi (biasanya /api); cross-domain perlu menggunakan URL lengkap, layanan target perlu mengkonfigurasi CORS.
Struktur Response
Return value adalah objek response Axios, field umum:
response.data: response body- API list biasanya
data.data(array record) +data.meta(pagination, dll.) - API single/create/update biasanya
data.dataadalah single record
Contoh
Query List
Submit Data
Dengan Filter dan Sorting
Skip Tip Error
Cross-Domain Request
Saat menggunakan URL lengkap untuk request domain lain, layanan target perlu mengkonfigurasi CORS untuk mengizinkan asal aplikasi saat ini. Jika API target memerlukan token sendiri, dapat diteruskan melalui headers:
Bersama dengan ctx.render untuk Tampilan
Hal yang Perlu Diperhatikan
- Error handling: request yang gagal akan melempar exception, default akan menampilkan tip error global. Menggunakan
skipNotify: truedapat menangkap dan memprosesnya sendiri. - Autentikasi: request domain yang sama akan otomatis membawa Token, locale, role pengguna saat ini; cross-domain memerlukan target untuk mendukung CORS, dan menyertakan token sesuai kebutuhan di headers.
- Izin resource: request dibatasi oleh ACL, hanya dapat mengakses resource yang dimiliki user saat ini.
Terkait
- ctx.message - Menampilkan tip ringan setelah request selesai
- ctx.notification - Menampilkan notifikasi setelah request selesai
- ctx.render - Merender hasil request ke interface
- ctx.makeResource - Membangun objek resource, untuk loading data berantai (alternatif dari
ctx.requestlangsung)

