Dans les documents de Spring sur Cacher les méthodes CRUD du référentiel :
16.2.3. Masquage des méthodes CRUD du référentiel
I CrudRepository, vous pouvez utiliser le paramètre @RestResource(exported = false) en surchargeant la méthode que vous voulez désactiver et en plaçant l'annotation sur la version surchargée. Par exemple, pour empêcher les utilisateurs HTTP d'invoquer les méthodes de suppression de CrudRepository, remplacez-les toutes et ajoutez l'annotation aux méthodes remplacées.
@RepositoryRestResource(path = "people", rel = "people")
interface PersonRepository extends CrudRepository<Person, Long> {
@Override
@RestResource(exported = false)
void delete(Long id);
@Override
@RestResource(exported = false)
void delete(Person entity);
}
Il est important que vous surchargez les deux méthodes de suppression comme l'exportateur utilise actuellement un algorithme quelque peu naïf pour déterminer quelle méthode CRUD à utiliser dans l'intérêt de performances d'exécution plus rapides. Il n'est pas actuellement possible de désactiver la version de delete qui prend un ID mais laisser exportée la version qui prend une instance d'entité. [ ] Pour l'instant, vous pouvez exporter ou non les méthodes de suppression. Si vous Si vous voulez les désactiver, gardez à l'esprit que vous devez annoter les deux versions avec exported = false.