I just released Module 10 in the Master Class of my "REST With Spring" Course:
A mature REST API can be a lot of work, and publishing Resources in a flexible way is usually a balancing act.
On the one hand, you want to allow the client to search for information in many flexible ways. On the other hand, you don’t want to implement to many operations.
A Search/Query Language for the API makes the most sense – it allows for a single, clean operation while still opening up the API for powerful searching.
Explores the implementation of the Query Language using JPA Criteria for the persistence layer.
Explores Spring Data JPA Specifications for the persistence layer of the Query Language.
Next – the persistence layer is implemented using QueryDSL.
Additional, more advanced operations added to the Query Language of the API.
Finally, instead of a custom Query Language we’re going to use Feed Item Query Language (FIQL) and its super-set – RSQL.
A quick intro to the web support in Spring Data JPA Querydsl and how to easily set that up within a REST API.