Webおよびモバイルアプリケーション用の意見のAPI。
これを他の言語で読んでください:中文。
Elideは、モデル駆動型のGraphQLまたはJSON API Webサービスを最小限の労力でセットアップできるJavaライブラリです。 ElideはAPIの2つのバリアントをサポートしています。
Elideは多くの機能をサポートしています:
宣言的で直感的な許可構文を介して、フィールドとエンティティへのアクセスを制御します。
JSON-API&GRAPHQLにより、開発者は1回の往復でオブジェクトグラフ全体を取得できます。データモデルの要素要素のみが返されます。突然変異に対する私たちの意見のあるアプローチは、一般的なアプリケーションシナリオに対処します。
フィルタリング、ソート、ページネーション、テキスト検索は、箱から出してサポートされています。
Elideは、JSON-APIまたはGraphQLのいずれかで、単一の要求で複数のデータモデル変異をサポートしています。オブジェクトを作成し、関係に追加し、単一の原子要求で一緒に変更または削除します。
Elideは、強力なセマンティック層で作成されたモデルに対する分析クエリをサポートしています。 Elide APIは、Yavinとネイティブに動作し、データを視覚化、調査、報告します。
生成されたSwaggerドキュメントまたはGraphQLスキーマを介して、Elide APIに対してクエリを探索、理解、および作成します。
計算された属性、データ検証注釈、およびライフサイクルフックを要求するデータモデル操作の動作をカスタマイズします。
Elideは、特定の持続戦略に不可知論されます。 ORMを使用するか、データストアの独自の実装を提供します。
Elideの詳細については、Elide.ioをご覧ください。
Elideのサンプルサービスを試すには、Elide-Spring-Boot-Exampleプロジェクトをご覧ください。
または、Elide-Standalone-Exampleプロジェクトを使用して、埋め込まれたJettyアプリケーション内で実行されるElideのローカルインスタンスをすばやくセットアップできるようにします。
Elideを使用する最も簡単な方法は、JPAを活用してElideモデルを永続化にマッピングすることです。
モデルは、Webサービスのドメインモデルを表す必要があります。
@ Entity
public class Book {
@ Id
private Integer id ;
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}Elide Annotationsを追加して、Webサービスを通じてモデルを公開し、アクセスのセキュリティポリシーを定義します。
@ Entity
@ Include ( rootLevel = true )
@ ReadPermission ( "Everyone" )
@ CreatePermission ( "Admin OR Publisher" )
@ DeletePermission ( "None" )
@ UpdatePermission ( "None" )
public class Book {
@ Id
private Integer id ;
@ UpdatePermission ( "Admin OR Publisher" )
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}ライフサイクルフックをモデルに追加して、Webサービスを介してCRUD操作とインラインを実行するカスタムビジネスロジックを埋め込みました。
@ Entity
@ Include ( rootLevel = true )
@ ReadPermission ( "Everyone" )
@ CreatePermission ( "Admin OR Publisher" )
@ DeletePermission ( "None" )
@ UpdatePermission ( "None" )
@ LifeCycleHookBinding ( operation = UPDATE , hook = BookCreationHook . class , phase = PRECOMMIT )
public class Book {
@ Id
private Integer id ;
@ UpdatePermission ( "Admin OR Publisher" )
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}
public class BookCreationHook implements LifeCycleHook < Book > {
@ Override
public void execute ( LifeCycleHookBinding . Operation operation ,
LifeCycleHookBinding . TransactionPhase phase ,
Book book ,
RequestScope requestScope ,
Optional < ChangeSpec > changes ) {
//Do something
}
}式を保存層に押し込まれたセキュリティ関数または述語にマッピングします。
@ SecurityCheck ( "Admin" )
public static class IsAdminUser extends UserCheck {
@ Override
public boolean ok ( User user ) {
return isUserInRole ( user , UserRole . admin );
}
}これらのモデルを公開して照会するには、Getting Guideで文書化された手順に従ってください。
たとえば、API呼び出し、次のように見てください。
表、測定、寸法、結合を含む分析モデルは、PojosまたはフレンドリーなHJSON構成言語のいずれかを作成できます。
{
tables: [
{
name: Orders
table: order_details
measures: [
{
name: orderTotal
type: DECIMAL
definition: 'SUM({{$order_total}})'
}
]
dimensions: [
{
name: orderId
type: TEXT
definition: '{{$order_id}}'
}
]
}
]
}
分析モデルの構成またはクエリの詳細については、こちらをご覧ください。
ここでは、セキュリティが詳細に文書化されています。
関与する方法についての情報については、converting.mdファイルを参照してください。問題、質問、プルリクエストを歓迎します。
IntellijなどのIDEを使用してElideに貢献している場合は、Lombokプラグインを必ずインストールしてください。
コミュニティチャットは現在、不一致になっています。ここをクリックして参加してください。
このプロジェクトは、Apache 2.0オープンソースライセンスの条件の下でライセンスされています。完全な条件については、ライセンスを参照してください。
ビデオをエリードするイントロ
Spring BootとElideを使用してJSON APIレストサービスを作成します
Spring Boot/Elide JSON APIサーバーを使用したカスタムセキュリティ
Spring Boot/Elide JSON APIサーバーへのログイン
Spring BootとElideでJSON APIレストサービスを保護する
Spring Boot/Elide JSON APIサーバーでエンティティを作成します
Spring Boot/Elide JSON APIサーバーでの更新と削除