Request
NocoBase menyediakan APIClient yang berbasis enkapsulasi Axios, untuk melakukan HTTP request di tempat mana pun yang dapat memperoleh Context.
Lokasi umum yang dapat memperoleh Context termasuk:
app.contextengine.contextplugin.contextmodel.context
ctx.api.request()
ctx.api.request() adalah method yang paling sering digunakan untuk membuat request, parameter dan return value-nya sepenuhnya konsisten dengan axios.request().
Penggunaan Dasar
Anda dapat langsung menggunakan konfigurasi request Axios standar:
ctx.api.axios
ctx.api.axios adalah instance AxiosInstance, dapat digunakan untuk memodifikasi konfigurasi default global atau menambahkan request interceptor.
Memodifikasi Konfigurasi Default
Untuk lebih banyak konfigurasi yang tersedia lihat Konfigurasi Default Axios.
Request dan Response Interceptor
Melalui interceptor dapat memproses sebelum request dikirim atau setelah response dikembalikan. Misalnya, secara terpadu menambahkan request header, serialize parameter, atau secara terpadu memberikan notifikasi error.
Contoh Request Interceptor
Contoh Response Interceptor
Custom Request Header NocoBase Server
Berikut adalah custom request header yang didukung NocoBase Server, dapat digunakan untuk skenario multi aplikasi, internasionalisasi, multi role atau multi autentikasi.
Tips
Request header ini biasanya disuntikkan otomatis oleh interceptor, tidak perlu diatur secara manual. Hanya dalam skenario khusus (seperti environment test atau skenario multi instance) perlu ditambahkan secara manual.
Penggunaan dalam Component
Dalam Component React, dapat memperoleh objek konteks melalui useFlowContext(), sehingga dapat memanggil ctx.api untuk membuat request.
Menggunakan Bersama useRequest dari ahooks
Dalam pengembangan aktual, dapat dikombinasikan dengan Hook useRequest yang disediakan oleh ahooks, untuk lebih mudah menangani siklus hidup dan status request.
Cara ini membuat logika request lebih deklaratif, otomatis mengelola status loading, notifikasi error, dan logika refresh, sangat cocok digunakan dalam Component.

