Há uma terceira (e quarta) opção que você não descreveu, que é usar @BasePathAwareController ou @RepositoryRestController, dependendo se você está executando ações específicas da entidade ou não.
@RepositoryRestResource é usado para definir opções na interface pública do Repositório - ele criará pontos de extremidade automaticamente conforme apropriado com base no tipo de Repositório que está sendo estendido (ou seja, CrudRepository / PagingAndSortingRepository / etc).
@BasePathAwareController e @RepositoryRestController são usados quando você deseja criar pontos de extremidade manualmente, mas deseja usar as configurações REST do Spring Data que você definiu.
Se você usar @RestController, você criará um conjunto paralelo de endpoints com diferentes opções de configuração - isto é, um conversor de mensagem diferente, diferentes manipuladores de erro, etc. - mas eles coexistirão alegremente (e provavelmente causarão confusão).
A documentação específica pode ser encontrada aqui .