Как предотвратить использование некоторых методов 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.
Ответы
Ответ 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);
}