I've noodled for some time now at mini-projects showcasing Spring REST with as many bells and whistles as I could pack in before it broke. I've never reached a satisfactory conclusion, which is more a testament to my mercurial temperament than to Spring. My ideal project would include:
- No XML, if avoidable (Lombok, I'm looking at you)
- No properties files (thank you, Spring YAML support)
- Annotations and code generation (thank you, Spring Boot and Lombok)
- Good documentation (Swagger and RAML, why do you need to be so tricky?)
- Complete REST adherence (HATEOAS, you are still an ugly child, sorry to say that)
- Modern Java
- No external container (Spring Boot to the rescue!)
- Many example integration points (and this is why I stay with you Spring)
- Maven build (sorry Gradle, I gave up makefiles so I would never again debug my build)
- Production support (Spring actuator: genius; see OSI)
- Cloud support
- Full CD pipeline (Boxfuse, you may save me yet; Github and Travis, you're still the best)
Essentially I want to implement a showcase REST microservice adhering to Larry Wall's three great virtues of a programmer: Laziness, Impatience and Hubris.
Well, there's always yet another Github repo.
Updates I'll keep updating this post as I find new things to desire in a showcase project.