API avisée pour les applications Web et mobiles.
Lisez ceci dans d'autres langues: 中文.
Elide est une bibliothèque Java qui vous permet de configurer le service Web GraphQL ou JSON API piloté par le modèle avec un effort minimal. Elide prend en charge deux variantes d'API:
Elide prend en charge un certain nombre de fonctionnalités:
Contrôlez l'accès aux champs et aux entités via une syntaxe déclarative et intuitive d'autorisation.
JSON-API & GraphQL permet aux développeurs de récupérer des graphiques d'objets entiers en un seul aller-retour. Seuls les éléments demandés du modèle de données sont renvoyés. Notre approche d'opinion pour les mutations traite des scénarios d'application courants:
Le filtrage, le tri, la pagination et la recherche de texte sont pris en charge hors de la boîte.
Elide prend en charge plusieurs mutations de modèle de données dans une seule demande dans JSON-API ou GraphQL. Créez des objets, ajoutez-les aux relations, modifiez ou supprimez dans une seule demande atomique.
Elide prend en charge les requêtes analytiques contre des modèles conçus avec sa puissante couche sémantique. Les API Elide travaillent en nativement avec Yavin pour visualiser, explorer et signaler vos données.
Explorez, comprenez et composez les requêtes avec votre API Elide via une documentation générée de fanfaronnade ou un schéma GraphQL.
Personnalisez le comportement des opérations du modèle de données avec des attributs calculés, des annotations de validation des données et demandez des crochets de cycle de vie.
Elide est agnostique à votre stratégie de persistance particulière. Utilisez un ORM ou fournissez votre propre implémentation d'un magasin de données.
Plus d'informations sur Elide peuvent être trouvées sur Elide.io.
Pour essayer un exemple de service Elide, consultez le projet Elide-Spring-Boot-Exemple.
Alternativement, utilisez le projet Elide-Standalone-Example qui vous permet de configurer rapidement une instance locale d'Elide fonctionnant à l'intérieur d'une application de jetée intégrée.
La façon la plus simple d'utiliser Elide est de tirer parti de JPA pour mapper vos modèles Elide à la persistance:
Les modèles doivent représenter le modèle de domaine de votre service Web:
@ Entity
public class Book {
@ Id
private Integer id ;
private String title ;
@ ManyToMany ( mappedBy = "books" )
private Set < Author > authors ;
}Ajoutez des annotations Elide pour exposer vos modèles via le service Web et définir les politiques de sécurité pour l'accès:
@ 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 ;
}Ajoutez des crochets de cycle de vie à vos modèles pour intégrer la logique commerciale personnalisée qui exécute en ligne avec les opérations CRUD via le service Web:
@ 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
}
}Map Expressions aux fonctions de sécurité ou prédicats qui sont poussés à la couche de persistance:
@ SecurityCheck ( "Admin" )
public static class IsAdminUser extends UserCheck {
@ Override
public boolean ok ( User user ) {
return isUserInRole ( user , UserRole . admin );
}
}Pour exposer et interroger ces modèles, suivez les étapes documentées dans le guide de démarrage.
Par exemple, les appels d'API, regardez:
Des modèles analytiques, y compris des tables, des mesures, des dimensions et des jointures, peuvent être créés soit comme Pojos ou avec un langage de configuration HJSON amical:
{
tables: [
{
name: Orders
table: order_details
measures: [
{
name: orderTotal
type: DECIMAL
definition: 'SUM({{$order_total}})'
}
]
dimensions: [
{
name: orderId
type: TEXT
definition: '{{$order_id}}'
}
]
}
]
}
Plus d'informations sur la configuration ou la question des modèles analytiques peuvent être trouvées ici.
La sécurité est documentée en profondeur ici.
Veuillez vous référer au fichier contributing.md pour plus d'informations sur la façon de vous impliquer. Nous accueillons des problèmes, des questions et des demandes de traction.
Si vous contribuez à Elide à l'aide d'un IDE, comme IntelliJ, assurez-vous d'installer le plugin Lombok.
Le chat communautaire est maintenant sur Discord. Rejoignez en cliquant ici.
Ce projet est concédé sous licence de la licence open source Apache 2.0. Veuillez vous référer à la licence pour les conditions complètes.
Intro pour éliminer la vidéo
Créez un service de repos JSON API avec Spring Boot et Elide
Sécurité personnalisée avec un serveur API Spring Boot / Elide JSON
Connexion à un serveur API Spring Boot / Elide JSON
Sécuriser un service de repos JSON API avec Spring Boot et Elide
Création d'entités dans un serveur API Spring Boot / Elide JSON
Mise à jour et supprimer avec un serveur API JSON Boot / Elide Boot / Elide