Spring Data Rest暴露了意外的HTTP方法

时间:2018-11-28 15:01:40

标签: spring rest spring-data-rest

我定义了以下RestRepository以仅公开GET /cars

@RepositoryRestResource
public interface CarRepository extends Repository<Car, String> {
    @RestResource
    List<Car> findAll();
}

我还放置了以下注释以仅公开带注释的存储库:

spring.data.rest.detection-strategy=annotated

致电GET /cars时一切正常,但是如果致电PATCH /cars/test,则会收到以下异常(带有相关的500状态代码):

java.lang.IllegalStateException: Repository doesn't have a find-one-method declared!
    at org.springframework.data.repository.support.ReflectionRepositoryInvoker.lambda$invokeFindById$1(ReflectionRepositoryInvoker.java:143) 
    ...

相反,如果我调用DELETE /cars/test,则会得到405不允许的方法(似乎更正确)。

这是Bug还是Spring Data Rest的预期行为?如果打算这样做,如何PATCH被正常禁用?

0 个答案:

没有答案