반응 관리자를 위한 깃털 데이터 제공자
REST 서비스를 기반으로 백엔드 및 프런트엔드 관리를 구축하는 데 완벽한 조합입니다. 반응 관리자와 함께 Feathers를 사용합니다.
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 설명서를 참조하세요. ra-data-feathers와 함께 사용하려면 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
각각 dataProvider
및 authProvider
매개변수로 React-admin <Admin>
구성 요소에 전달하여 사용할 수 있습니다.
< 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á의 후원을 받습니다.
멋진 분들에게 감사드립니다(이모지 키):
호세 루이스 디 비아세 | 니콜라스 넬슨 | FC | 아무르 노만 | 리조 안토니 | 토니 커즈 | 드미트리 마가노프 |
꿈 | 웨드니 유리 | 이고르 베를렌코 | 토마스 박 | 댄 스티븐스 | 다니엘 프렌티스 | 파쿤도 마이네레 |
페르난도 나바로 | 로밍 | 모하메드 파이주딘 | 라이언 하머스 | 산티아고 보타 | 테일러 구달 | 알렉산더 프리들 |
파비오 토이 | jvke | nhkhanh |
이 프로젝트는 모든 기여자 사양을 따릅니다. 어떤 종류의 기여도 환영합니다!