Hay una tercera (y cuarta) opción que no ha descrito, que es usar @BasePathAwareController o @RepositoryRestController, dependiendo de si está realizando acciones específicas de la entidad o no.
@RepositoryRestResource se utiliza para establecer opciones en la interfaz del repositorio público; automáticamente creará puntos finales según corresponda en función del tipo de repositorio que se está ampliando (es decir, CrudRepository / PagingAndSortingRepository / etc.).
@BasePathAwareController y @RepositoryRestController se usan cuando desea crear puntos finales manualmente, pero desea usar las configuraciones REST de Spring Data que ha configurado.
Si usa @RestController, creará un conjunto paralelo de puntos finales con diferentes opciones de configuración, es decir, un convertidor de mensajes diferente, diferentes controladores de errores, etc., pero coexistirán felizmente (y probablemente causarán confusión).
Puede encontrar documentación específica aquí .