Về chủ đề ý nghĩa spring boot

em xin chào mọi người, hiện tại em đang viết một phương thức để cho sản phẩm vào giỏ hàng, và em có nhờ bạn em thẩm hộ qua, bạn ấy bảo là em làm này chưa đúng, không nên truyền chung PathVariable chung với RequestParam , nên hiện tại em vẫn rõ chuẩn ý như nào , em mn và các anh giải đáp giúp em ạ
em xin cảm ơn !

    @PostMapping ("/addToCart/{id}")
    public ResponseEntity<?> addSPVaoGio(HttpServletRequest request,
                                         @PathVariable("id") Integer idctsp,
                                         @RequestParam("quality") int soluongthem) {
        try {
            System.out.println("them san pham ");
            HttpSession session = request.getSession(false);
            if (session != null) {
                kh = (KhachHang) session.getAttribute("khachHang");

                if (kh != null && idctsp != null) {
                    iGioHangCTService.onlineCart(kh, idctsp, soluongthem);

                } else {
                    return ResponseEntity.ok("khach hang chua dang nhap");
                }

            } else {
                return ResponseEntity.ok("session ko có tt kh");
            }
        } catch (Exception e) {
            System.out.println("day la loi:" + e.getMessage());
            e.printStackTrace();
        }
        return ResponseEntity.ok().build();
    }

Rồi bạn em có giải thích tại sao là chưa đúng và không nên không em? Riêng anh thấy đâu có vấn đề gì đâu. Em tham khảo thêm good practice về cách thiết kết API nói chung nhé


Nguồn: https://blog.bytebytego.com/p/ep53-design-effective-and-safe-apis

Do nhìn nó không được “đẹp mắt” thôi. Thường thì path param dùng để định danh dữ liệu vd như GET /items/1/details là lấy details từ item có id là 1. Còn rquest param thường dùng để filter, sort dữ liệu vd như GET /items/search?cat=cosmetics&priceFrom=100000&priceTo=500000&currName=vnd : lấy tất cả mỹ phẩm có giá từ 100.000 - 500.000 vnd

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?