如何在不知道json中的id的情况下发送删除请求?
比如说 如果我使用findByEmail,我的url将如下所示 如果我在JPA存储库中有deleteByEmail,删除请求的URL会是什么样子 这就是我的JPA的样子如何在不知道json中的id的情况下发送删除请求?,json,api,spring-boot,spring-data-jpa,Json,Api,Spring Boot,Spring Data Jpa,比如说 如果我使用findByEmail,我的url将如下所示 如果我在JPA存储库中有deleteByEmail,删除请求的URL会是什么样子 这就是我的JPA的样子 public interface CartRepository extends JpaRepository<Cart, Integer> { @Transactional @RestResource(exported = true) List<Cart> deleteByEma
public interface CartRepository extends JpaRepository<Cart, Integer> {
@Transactional
@RestResource(exported = true)
List<Cart> deleteByEmail(String email);
}
公共接口CartRepository扩展了JpaRepository{
@交易的
@RestResource(导出=真)
列表deleteByEmail(字符串电子邮件);
}
您可以将restapi设置为{emailId},将路径变量HttpMethod中的emailId设置为DELETE。在服务方法内部,您可以通过emailId进行搜索,然后使用ID将其删除。您需要创建一个具有适当映射的控制器方法。您可以定义任何您想要的URL,我使用了/api/carts/{email}
。确保发送HTTP删除请求
@RestController
public class CartController {
private final CartRepository cartRepository;
@Autowired
public CartController (CartRepository cartRepository) {
this.cartRepository = cartRepository;
}
@DeleteMapping("/api/carts/{email}")
public void deleteCart(@PathVariable String email) {
cartRepository.deleteByEmail(email);
}
}
如果您希望使用请求参数解决此问题,请更改deleteCart
方法,如下所示:
@DeleteMapping("/api/carts")
public void deleteCart(@RequestParam String email) {
cartRepository.deleteByEmail(email);
}
删除请求的链接如下所示?电子邮件=helloworld@gmail.com@MarwenJaffel我试过了,它显示404资源不是源错误