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:
./feathersClientuserrolesAResource 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!