【问题标题】:how to send delete request without knowing the id in json?如何在不知道 json 中的 id 的情况下发送删除请求?
【发布时间】:2020-04-16 04:49:41
【问题描述】:

例如 如果我使用 findByEmail,我的 url 看起来像这样 http://localhost:8080/api/carts/search/findByEmail?email=helloworld@gmail.com

如果我在 JPA 存储库中有 deleteByEmail,删除请求的 URL 将如何显示

这就是我的 JPA 的样子

public interface CartRepository extends JpaRepository<Cart, Integer> {

    @Transactional
    @RestResource(exported = true)
    List<Cart> deleteByEmail(String email);
}

【问题讨论】:

标签: json api spring-boot spring-data-jpa


【解决方案1】:

您可以使用 http://localhost:8080/api/carts/email/{emailId} 的 rest API,并将 PathVariable HttpMethod 中的 emailId 作为 DELETE。在服务方法中,您通过 emailId 进行搜索,然后使用 ID 将其删除。

【讨论】:

    【解决方案2】:

    您需要创建一个具有适当映射的控制器方法。你可以定义任何你想要的 URL,我使用了/api/carts/{email}。确保发送 HTTP DELETE 请求。

    @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);
        }
    

    【讨论】:

      猜你喜欢
      • 2015-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-05
      • 1970-01-01
      • 2017-07-17
      • 2017-06-03
      相关资源
      最近更新 更多