私は春データ休憩のRestResourceアノテーションを使用したいと思います。あなたが知っているように、デフォルトでALL CRUDメソッドを公開します。しかし、私はfindAllメソッドだけが必要です。一つの方法は、このような偽の他のすべてのメソッドのエクスポート値を設定することです:休憩リソースの春データ休憩で偽としてエクスポートのデフォルト値を設定する方法
@RestResource(path="questions")
public interface QuestionRepository extends CRUDRepository<Question,Long> {
@RestResource(exported = false)
void delete(Long id);
@RestResource(exported = false)
void create(Question q);
....
}
をしかし、私はこれが好きではありません。私はこの冶金を避けることができるので、他の簡単な方法はありますか?
@RequiredArgsConstructor
@BasePathAwareController
@RequestMapping("/questions")
public class QuestionController {
private final @NonNull QuestionRepository repository;
private final @NonNull PagedResourcesAssembler<Question> assembler;
private final @NonNull EntityLinks links;
@GetMapping
ResponseEntity<?> get(Pageable pageable) {
return ResponseEntity.ok(assembler.toResource(repository.findAll(pageable),
(ResourceAssembler<Question, ResourceSupport>) question ->
new Resource<>(question,
links.linkToSingleResource(question).withSelfRel())));
}
}
をし、あなたのQuestionRepositoryを無効にエクスポートする:
@RepositoryRestResource(exported = false)
public interface QuestionRepository extends JpaRepository<Question, Long> {
}
ワーキングexampleを