The goal of this project is to find a way to use RSQL alongside Spring Data REST and compliment the findAll (GET /{repository}) with some of the JpaSpecificationExecutor methods. Possibly the best description of what this demo does can be found in the tests.
There are a number of parts to this that require more thought and this is just a basic working solution. Exposing this kind of behavior in an application should be done with great care as anybody could potentially query for any field in an entity.
Here are some references that helped me greatly to understand and implement this demo:
- Rest Repositories
- Spring Data JPA
- Magic of Spring Data
- Spring Conversion Service for target type optional - Very useful in finding solution for Specification converter
- rsql-parser
- REST API search language RSQL FIQL