ผู้ให้บริการข้อมูล Feathers สำหรับผู้ดูแลระบบแบบโต้ตอบ
การจับคู่ที่สมบูรณ์แบบสำหรับการสร้าง Backend และ Frontend Admin โดยอิงตามบริการ REST สำหรับการใช้ Feathers กับ react-admin
หากคุณกำลังค้นหา admin-on-rest (เวอร์ชัน react-admin ที่เก่ากว่า) โปรดใช้เวอร์ชัน 1.0.0
ปัจจุบัน ra-data- feathers รองรับประเภทคำขอต่อไปนี้ ข้อมูลเพิ่มเติมเกี่ยวกับประเภทคำขอของผู้ดูแลระบบการตอบสนองมีให้สำหรับผู้ให้บริการข้อมูลและผู้ให้บริการตรวจสอบสิทธิ์ในเอกสารประกอบของผู้ดูแลระบบการตอบสนอง
ในแอป react-admin ของคุณเพียงเพิ่มการพึ่งพา 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
สามารถใช้งานได้โดยเปิดใช้งานหลายตัวเลือกในแอปพลิเคชัน Feathers
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
ไปยังคอมโพเนนต์ react-admin <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 ของคุณโดยตรง ในโปรเจ็กต์ส่วนใหญ่ ตัวเลือกนี้จะใช้กับ hook การจำกัดผู้ใช้/บทบาทบนฝั่งเซิร์ฟเวอร์ เช่น feathers-authentication-hooks
คุณสามารถดูตัวอย่างที่สมบูรณ์ได้ในhttps://github.com/kfern/ feathers-aor-test-integration
การทดสอบโมดูล ra-data- feathers มีอยู่ในไดเร็กทอรีรากของโมดูลด้วย:
npm run test
ซอฟต์แวร์นี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT และได้รับการสนับสนุนจาก Cambá
ขอขอบคุณผู้คนที่แสนวิเศษเหล่านี้ (คีย์อีโมจิ):
โฮเซ่ หลุยส์ ดิ บิอาเซ | นิโคลัส เนลสัน | เอฟซี | อัมร โนมาน | ลิโจ แอนโทนี่ | โทนี่ เคิร์ซ | ดมิทรี มากานอฟ |
ฝัน | เวดนีย์ ยูริ | อิกอร์ เบอร์เลนโก | โทมัส บัค | แดน สตีเวนส์ | ดาเนียล เพรนติส | ฟาคุนโด เมนเนเร่ |
เฟร์นานโด นาวาร์โร | โลหมิง | โมฮัมเหม็ด ไฟซูดดิน | ไรอัน ฮาร์มัธ | ซานติอาโก้ บอตต้า | เทย์เลอร์ กูดดอลล์ | อเล็กซานเดอร์ ฟรีเดิล |
ฟาบิโอ ตอย | เจวีเค | nhkhanh |
โครงการนี้เป็นไปตามข้อกำหนดของผู้มีส่วนร่วมทั้งหมด ยินดีต้อนรับการบริจาคใด ๆ !