Подтвердить что ты не робот

Как предотвратить использование некоторых методов HTTP из моего MongoRepository?

Я использую spring -data-rest, и у меня есть MongoRepository, как это:

@RepositoryRestResource
interface MyEntityRepository extends MongoRepository<MyEntity, String> {
}

Я хотел бы разрешить методы GET, но отключить PUT, POST, PATCH и DELETE (только для веб-службы).

Согласно http://docs.spring.io/spring-data/rest/docs/2.2.2.RELEASE/reference/html/#repository-resources.collection-resource, я мог бы сделать это вот так:

@RepositoryRestResource
interface MyEntityRepository extends MongoRepository<MyEntity, String> {

    @Override
    @RestResource(exported = false)
    public MyEntity save(MyEntity s);

    @Override
    @RestResource(exported = false)
    public void delete(String id);

    @Override
    @RestResource(exported = false)
    public void delete(MyEntity t);
}

Кажется, он не работает, поскольку я все еще могу выполнять запросы PUT, POST, PATCH и DELETE.

4b9b3361

Ответ 1

Благодаря Oliver, вот методы для переопределения:

@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PersonRepository extends MongoRepository<Person, String> {

    // Prevents GET /people/:id
    @Override
    @RestResource(exported = false)
    public Person findOne(String id);

    // Prevents GET /people
    @Override
    @RestResource(exported = false)
    public Page<Person> findAll(Pageable pageable);

    // Prevents POST /people and PATCH /people/:id
    @Override
    @RestResource(exported = false)
    public Person save(Person s);

    // Prevents DELETE /people/:id
    @Override
    @RestResource(exported = false)
    public void delete(Person t);

}