When to use @RestController vs @RepositoryRestResource

code picture code · Apr 3, 2014 · Viewed 52k times · Source

I have been looking at various examples of how to use Spring with REST. Our end target is a Spring HATEOAS/HAL setup

I have seen two distinct methods for rendering REST within Spring

  1. Via @RestController within a Controller

  2. Via @RepositoryRestResource within a Repository

The thing I am struggling to find is why would you use one over the other. When trying to implement HAL which is best?

Our database backend is Neo4j.

Answer

zpontikas picture zpontikas · Apr 20, 2014

Ok, so the short story is that you want to use the @RepositoryRestResource since this creates a HATEOAS service with Spring JPA.

As you can see here adding this annotation and linking it to your Pojo you have a fully functional HATEOAS service without having to implement the repository method or the REST service methods

If you add the @RestController then you have to implement each method that you want to expose on your own and also it does not export this to a HATEOAS format.