A while ago I wrote about Super Graph which turns GraphQL queries into a single SQL query. Today let's take a look at a very similar Java project called Elide.
Elide is a Java library provided by Yahoo! which aims to boost the development velocity of your projects by enabling you to stand up a JSON API or GraphQL web service with minimal effort starting from a JPA annotated data model. Elide allows you to quickly build and deploy production-ready JSON-API & GraphQL service letting you fetch entire object graphs in a single round trip. It supports multiple data model mutations in a single request in both JSON-API & GraphQL service. Creating objects, setting up relationships as well as updating or deleting, all is handled in a single atomic request.
Production Quality - build and deploy production-ready web services that expose your data as a service the way you need it.
Security - control access to your data by defining custom rules and annotating your models.
Mobile-Friendly - get only the data you asked for; fetch entire object graphs in a single round trip.
Single Atomic Request - Create objects, set up relationships, update, delete - all together in a single atomic request.
Customize - define custom behaviors for your data model operations, data validation annotations & request lifecycle hooks.
Elide is 100% open source under the commercial-friendly Apache 2.0 License.
1. Define a model - as mentioned above Elide bases on a JPA annotated data model so our first step it setting it up & including relationships to other models using Java, Kotlin, Groovy or other JVM languages,
2 Secure - next step is securing access to our model's fields and entities through a declarative permission syntax,
3. Expose - then making instances of your new model accessible through a top-level collection or if you prefer restricted access through relationships to other models,
4. Deploy & Query - once all above is done you are good to deploy and query your data with JSON or GraphQL requests.
If you want to learn more about Elide or thinking about incorporating it to your product make sure the check Elide's documentation.