用于反应管理的羽毛数据提供者
基于 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 | 阿姆·诺曼 | 利乔·安东尼 | 托尼·克兹 | 德米特里·马加诺夫 |
梦 | 韦德尼·尤里 | 伊戈尔·贝尔连科 | 托马斯·巴克 | 丹·史蒂文斯 | 丹尼尔·普伦蒂斯 | 法昆多·梅内雷 |
费尔南多·纳瓦罗 | 洛明 | 穆罕默德·法祖丁 | 瑞安·哈姆斯 | 圣地亚哥·博塔 | 泰勒·古道尔 | 亚历山大·弗里德尔 |
法比奥·托伊 | 积客 | 恩坎赫 |
该项目遵循所有贡献者规范。欢迎任何形式的贡献!