用於反應管理的羽毛資料提供者
基於 REST 服務建構後端和前端管理的完美匹配。用於將 Feathers 與 react-admin 一起使用。
如果您正在搜尋 admin-on-rest (較舊的 React-admin 版本),請使用 1.0.0 版本
ra-data-feathers 目前支援以下請求類型。有關react-admin 請求類型的更多信息,請參閱react-admin 文件中的資料提供者和身分驗證提供者。
在您的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
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>
元件一起使用可以透過將restClient
和authClient
分別作為dataProvider
和authProvider
參數傳遞給react-admin <Admin>
元件來使用ra-data-feathers:
< 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。在大多數專案中,此選項將與伺服器端的使用者/角色限制鉤子一起使用,例如feathers-authentication-hooks。
您可以在 https://github.com/kfern/feathers-aor-test-integration 中找到完整的範例
ra-data-feathers 模組的測試可從模組的根目錄使用:
npm run test
該軟體根據 MIT 許可證獲得許可,並由 Camba 贊助。
感謝這些優秀的人(表情符號鍵):
何塞·路易斯·迪比亞斯 | 尼古拉斯·納爾遜 | FC | 阿姆諾曼 | 利喬·安東尼 | 東尼克茲 | 德米特里·馬加諾夫 |
夢 | 韋德尼·尤里 | 伊戈爾·貝爾連科 | 托馬斯·巴克 | 丹·史蒂文斯 | 丹尼爾普倫蒂斯 | 法昆多·梅內雷 |
費爾南多·納瓦羅 | 洛明 | 穆罕默德·法祖丁 | 瑞安·哈姆斯 | 聖地亞哥·博塔 | 泰勒·古道爾 | 亞歷山大·弗里德爾 |
法比奧·托伊 | 積客 | 恩坎赫 |
該項目遵循所有貢獻者規範。歡迎任何形式的貢獻!