如何在不知道json中的id的情况下发送删除请求?

如何在不知道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

比如说 如果我使用findByEmail,我的url将如下所示

如果我在JPA存储库中有deleteByEmail,删除请求的URL会是什么样子

这就是我的JPA的样子

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资源不是源错误