Penyedia data bulu untuk admin reaksi
Pasangan sempurna untuk membangun Admin Backend dan Frontend, berdasarkan layanan REST. Untuk menggunakan Feathers dengan reaksi-admin.
Jika Anda mencari admin-on-rest (versi react-admin yang lebih lama), silakan gunakan versi 1.0.0
ra-data-feathers saat ini mendukung jenis permintaan berikut. Informasi selengkapnya tentang jenis permintaan react-admin tersedia untuk penyedia data dan penyedia autentikasi dalam dokumentasi react-admin.
Di aplikasi react-admin Anda, cukup tambahkan ketergantungan ra-data-feathers:
npm install ra-data-feathers --save
restClient
dan authClient
bergantung pada instance klien Feathers yang dikonfigurasi.
Konfigurasi klien Feathers berada di luar cakupan dokumen ini. Lihat dokumentasi Feathers untuk informasi lebih lanjut tentang konfigurasi klien Feathers. Kedua hal berikut ini perlu dikonfigurasi di klien Feathers untuk digunakan dengan ra-data-feathers.
Penyedia data ra-data-feathers (restClient) menerima dua argumen: client
dan options
.
client
harus berupa instance klien Feathers yang dikonfigurasi. Argumen ini diperlukan.
options
berisi opsi yang dapat dikonfigurasi untuk restClient ra-data-feathers. Argumen options
bersifat opsional dan dapat dihilangkan. Dalam hal ini, default akan digunakan.
const options = {
id : 'id' , // If your database uses an id field other than 'id'. Optional.
usePatch : false , // Use PATCH instead of PUT for UPDATE requests. Optional.
my_resource : { // Options for individual resources can be set by adding an object with the same name. Optional.
id : 'id' , // If this specific table uses an id field other than 'id'. Optional.
} ,
/* Allows to use custom query operators from various feathers-database-adapters in GET_MANY calls.
* Will be merged with the default query operators ['$gt', '$gte', '$lt', '$lte', '$ne', '$sort', '$or', '$nin', '$in']
*/
customQueryOperators : [ ]
}
Performant Bulk Actions
dapat digunakan dengan mengaktifkan multi opsi di aplikasi bulu
authClient
juga menerima dua parameter. client
dan options
.
client
harus berupa instance klien Feathers yang dikonfigurasi. Argumen ini diperlukan.
options
berisi opsi yang dapat dikonfigurasi untuk authClient ra-data-feathers. Argumen options
bersifat opsional dan dapat dihilangkan. Dalam hal ini, default yang ditunjukkan di bawah ini akan digunakan.
const options = {
storageKey : 'feathers-jwt' , // The key in localStorage used to store the authentication token
authenticate : { // Options included in calls to Feathers client.authenticate
strategy : 'local' , // The authentication strategy Feathers should use
} ,
permissionsKey : 'permissions' , // The key in localStorage used to store permissions from decoded JWT
permissionsField : 'roles' , // The key in the decoded JWT containing the user's role
passwordField : 'password' , // The key used to provide the password to Feathers client.authenticate
usernameField : 'email' , // The key used to provide the username to Feathers client.authenticate
redirectTo : '/login' , // Redirect to this path if an AUTH_CHECK fails. Uses the react-admin default of '/login' if omitted.
logoutOnForbidden : true , // Logout when response status code is 403
}
<Admin>
ra-data-feathers dapat digunakan dengan meneruskan restClient
dan authClient
ke komponen react-admin <Admin>
masing-masing sebagai parameter dataProvider
dan authProvider
:
< Admin
dataProvider = { restClient ( feathersClient , restClientConfig ) }
authProvider = { authClient ( feathersClient , authClientConfig ) }
/>
Contoh ini mengasumsikan hal berikut:
./feathersClient
userroles
AResource
dan AnotherResource
tersedia di ./resources
import { Admin , Resource } from 'react-admin' ;
import feathersClient from './feathersClient' ;
import { AResourceList } from './resources/AResource/List' ;
import { AnotherResourceList } from './resources/AnotherResourceList' ;
import { restClient , authClient } from 'ra-data-feathers' ;
const restClientOptions = {
id : '_id' , // In this example, the database uses '_id' rather than 'id'
usePatch : true // Use PATCH instead of PUT for updates
} ;
const authClientOptions = {
usernameField : 'username' , // Our example database might use 'username' rather than 'email'
permissionsField : 'userroles' , // Use the 'userroles' field on the JWT as the users role
redirectTo : '/signin' , // Our example login form might be at '/signin', redirect here if AUTH_CHECK fails
}
const App = ( ) => (
< Admin
title = 'ra-data-feathers Example'
dataProvider = { restClient ( feathersClient , restClientOptions ) }
authProvider = { authClient ( feathersClient , authClientOptions ) }
>
{ permissions => [
< Resource
name = 'a_resource'
list = { AResourceList }
/>
permissions === 'admin' ? // Only show this resource if the user role is 'admin'
< Resource
name = 'another_resource'
list = { AnotherResourceList }
/> : null ;
] }
</ Admin >
) ;
Catatan: pembatasan izin di atas hanya memengaruhi apakah sumber daya tertentu terlihat atau tidak, dan tidak akan mencegah pengguna mengakses API Anda secara langsung. Di sebagian besar proyek, opsi ini akan digunakan dengan kait pembatasan pengguna/peran di sisi server seperti kait autentikasi bulu.
Anda dapat menemukan contoh lengkapnya di https://github.com/kfern/feathers-aor-test-integration
Pengujian untuk modul ra-data-feathers tersedia dari direktori root modul dengan:
npm run test
Perangkat lunak ini dilisensikan di bawah Lisensi MIT, dan disponsori oleh Cambá.
Terima kasih kepada orang-orang hebat ini (kunci emoji):
José Luis Di Biase | Nikolas Nelson | FC | Amr Noman | Lijo Antony | tony kerz | Dmitrii Maganov |
Mimpi | Rabu Yuri | Igor Berlenko | Tomasz Bak | Dan Stevens | Daniel Prentis | Facundo Mainere |
Fernando Navarro | LoMing | Muhammad Faizuddin | Ryan Harmuth | Santiago Botta | Taylor Goodall | Alexander Friedl |
Fabio Toi | jvke | nhkhanh |
Proyek ini mengikuti spesifikasi semua kontributor. Kontribusi apa pun diterima!