مزود بيانات الريش لمشرف التفاعل
التطابق المثالي لبناء Backend وFronend Admin، استنادًا إلى خدمات REST. لاستخدام الريش مع رد فعل المشرف.
إذا كنت تبحث عن admin-on-rest (إصدار رد الفعل الأقدم)، فيرجى استخدام الإصدار 1.0.0
يدعم ra-data-feathers حاليًا أنواع الطلبات التالية. يتوفر المزيد من المعلومات حول أنواع طلبات رد المسؤول لموفري البيانات وموفري المصادقة في وثائق رد المسؤول.
في تطبيق رد الفعل الخاص بك، ما عليك سوى إضافة تبعية ra-data-feathers:
npm install ra-data-feathers --save
يعتمد كل من restClient
و authClient
على مثيل عميل Feathers الذي تم تكوينه.
يقع تكوين عميل Feathers خارج نطاق هذا المستند. راجع وثائق Feathers لمزيد من المعلومات حول تكوين عميل Feathers. يجب تكوين كلا الأمرين التاليين في عميل Feathers للاستخدام مع ra-data-feathers.
يقبل موفر بيانات ra-data-feathers (restClient) وسيطتين: client
options
.
يجب أن يكون client
مثيل عميل Feathers الذي تم تكوينه. هذه الحجة مطلوبة.
تحتوي options
على خيارات قابلة للتكوين لـ ra-data-feathers RestClient. وسيطة options
اختيارية ويمكن حذفها. في هذه الحالة، سيتم استخدام الإعدادات الافتراضية.
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
من خلال تمكين خيارات متعددة في تطبيق الريش
يقبل authClient
أيضًا معلمتين. client
options
.
يجب أن يكون client
مثيل عميل Feathers الذي تم تكوينه. هذه الحجة مطلوبة.
تحتوي options
على خيارات قابلة للتكوين لـ ra-data-feathers authClient. وسيطة options
اختيارية ويمكن حذفها. في هذه الحالة، سيتم استخدام الإعدادات الافتراضية الموضحة أدناه.
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 عن طريق تمرير restClient
و authClient
إلى المكون <Admin>
الخاص بـ رد الفعل كمعلمات dataProvider
و authProvider
على التوالي:
< Admin
dataProvider = { restClient ( feathersClient , restClientConfig ) }
authProvider = { authClient ( feathersClient , authClientConfig ) }
/>
يفترض هذا المثال ما يلي:
./feathersClient
userroles
AResource
و AnotherResource
في ./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 >
) ;
ملاحظة: يؤثر تقييد الأذونات أعلاه فقط على ما إذا كان المورد المحدد مرئيًا أم لا، ولن يمنع المستخدمين من الوصول إلى واجهة برمجة التطبيقات (API) الخاصة بك مباشرة. في معظم المشاريع، سيتم استخدام هذا الخيار مع خطافات تقييد المستخدم/الدور على جانب الخادم مثل خطافات مصادقة الريش.
يمكنك العثور على مثال كامل في https://github.com/kfern/feathers-aor-test-integration
تتوفر اختبارات وحدة ra-data-feathers من الدليل الجذر للوحدة مع:
npm run test
هذا البرنامج مرخص بموجب ترخيص MIT، وبرعاية Cambá.
شكرًا لهؤلاء الأشخاص الرائعين (مفتاح الرموز التعبيرية):
خوسيه لويس دي بياسي | نيكولاس نيلسون | إف سي | عمرو نعمان | ليجو أنتوني | توني كيرز | ديمتري ماجانوف |
حلم | ويدني يوري | ايجور بيرلينكو | توماسز باك | دان ستيفنز | دانيال برنتيس | فاكوندو مينيري |
فرناندو نافارو | لومينج | محمد فيض الدين | ريان هارموث | سانتياغو بوتا | تايلور جودال | الكسندر فريدل |
فابيو توي | jvke | nhkhanh |
يتبع هذا المشروع مواصفات جميع المساهمين. المساهمات من أي نوع موضع ترحيب!