gpt4 book ai didi

spring - 如何防止某些 HTTP 方法从我的 MongoRepository 中导出?

转载 作者:IT老高 更新时间:2023-10-28 13:47:08 25 4
gpt4 key购买 nike

我正在使用 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 请求。

最佳答案

感谢 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);

}

关于spring - 如何防止某些 HTTP 方法从我的 MongoRepository 中导出?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29169717/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com