React-admin 用の Feather データ プロバイダー
REST サービスに基づいて、バックエンドおよびフロントエンド管理を構築するのに最適です。 React-admin で Feathers を使用する場合。
admin-on-rest(古いreact-adminバージョン)を検索している場合は、1.0.0バージョンを使用してください。
ra-data-feathers は現在、次のリクエスト タイプをサポートしています。データ プロバイダーと認証プロバイダーについては、react-admin リクエスト タイプの詳細については、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
2 つの引数を受け入れます。
client
構成された Feathers クライアント インスタンスである必要があります。この引数は必須です。
options
ra-data-feathersrestClient の構成可能なオプションが含まれています。 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
2 つのパラメータも受け入れます。 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 に直接アクセスすることを妨げるものではありません。ほとんどのプロジェクトでは、このオプションは、feathers-authentication-hooks などのサーバー側のユーザー/ロール制限フックとともに使用されます。
完全な例は https://github.com/kfern/feathers-aor-test-integration にあります。
ra-data-feathers モジュールのテストは、次のコマンドを使用してモジュールのルート ディレクトリから利用できます。
npm run test
このソフトウェアは MIT ライセンスに基づいてライセンスされており、Camba のスポンサーとなっています。
これらの素晴らしい人々に感謝します (絵文字キー):
ホセ・ルイス・ディ・ビアセ | ニコラス・ネルソン | FC | アムル・ノーマン | リホ・アントニー | トニー・カーズ | ドミトリイ・マガノフ |
夢 | ウェドニー・ユリ | イーゴリ・ベルレンコ | トマシュ・バク | ダン・スティーブンス | ダニエル・プレンティス | ファクンド・マイネレ |
フェルナンド・ナバロ | ローミン | モハメド・ファイズディン | ライアン・ハーマス | サンティアゴ・ボッタ | テイラー・グドール | アレクサンダー・フリードル |
ファビオ・トイ | ジブケ | ニッハン |
このプロジェクトは、全員参加者の仕様に従っています。あらゆる種類の貢献を歓迎します!