Skip to content

danchen/elide

 
 

Repository files navigation

Codacy Badge Gitter Build Status Maven Central

Elide Logo

Read this in other languages: 中文.

What Is Elide?

Elide is a Java library that lets you stand up a JSON API web service with minimal effort starting from a JPA annotated data model. Elide is designed to quickly build and deploy production quality web services that expose data models as services. Elide provides:

  1. Access to JPA entities via JSON API CRUD operations. Entities can be explicitly included or excluded via annotations.
  2. Patch Extension Elide supports the JSON API Patch extension allowing multiple create, edit, and delete operations in a single request.
  3. Atomic Requests All requests to the library (including the patch extension) can be embedded in transactions to ensure operational integrity.
  4. Authorization All operations on entities and their fields can be assigned custom permission checks limiting who has access to your data.
  5. Audit Logging can be customized for any operation on any entity.
  6. Extension Elide allows the ability to customize business logic for any CRUD operation on the model. Any persistence backend can be skinned with JSON-API by wiring in a JPA provider or by implementing a custom DataStore.
  7. Test Elide includes a test framework that explores the full surface of the API looking for security vulnerabilities.
  8. Client API Elide is developed in conjunction with a Javascript client library that insulates developers from changes to the specification. Alternatively, Elide can be used with any JSON API client library.

Documentation

More information about Elide can be found at elide.io.

Elide on Maven

To integrate Elide into your project, simply include elide-core into your project's pom.xml:

<!-- Elide -->
<dependency>
    <groupId>com.yahoo.elide</groupId>
    <artifactId>elide-core</artifactId>
</dependency>

Additionally, if you do not plan to write your own data store, select the appropriate data store for your setup and include it as well. For instance, if you plan on using the "in-memory database" (not recommended for production use) then you would add the following:

<dependency>
    <groupId>com.yahoo.elide</groupId>
    <artifactId>elide-datastore-inmemorydb</artifactId>
</dependency>

Development

If you are contributing to Elide using an IDE, such as IntelliJ, make sure to install the Lombok plugin.

Tutorials

Create a JSON API REST Service With Spring Boot and Elide

Custom Security With a Spring Boot/Elide Json API Server

Logging Into a Spring Boot/Elide JSON API Server

Securing a JSON API REST Service With Spring Boot and Elide

Creating Entities in a Spring Boot/Elide JSON API Server

Updating and Deleting with a Spring Boot/Elide JSON API Server

License

The use and distribution terms for this software are covered by the Apache License, Version 2.0 (http://www.apache.org/licenses/LICENSE-2.0.html).

About

Elide is a Java library that lets you stand up a JSON API web service with minimal effort

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 90.5%
  • Groovy 8.6%
  • Other 0.9%