Spring boot

[Spring boot] DELETE ๋ฐฉ์‹์— ์ดํ•ด ๋ฐ ์‹ค์Šต

๋ฏธ๋กœ910 2024. 10. 1. 17:29
๐Ÿ’ก
1. @DeleteMapping ์ดํ•ด
2. @PathVariable ์‚ฌ์šฉ
3. @RequestParam ์‚ฌ์šฉ

 


 

DeleteApiController

    
@RestController // Ioc ๋Œ€์ƒ (์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์œผ๋กœ ๊ด€๋ฆฌ)
public class DeleteApiController {

    // http://localhost:8080/delete/100?account=์šฐ๋ฆฌ์€ํ–‰
    //@GetMapping("/delete/{userId}")

    /**
     * DELETE ์š”์ฒญ์„ ์ฒ˜๋ฆฌ     * 
     * ์ฃผ์†Œ ์„ค๊ณ„ (๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง์ ‘ ์š”์ฒญํ•  ์ˆ˜ ์—†์Œ, ๋ณดํ†ต Postman ๋“ฑ์œผ๋กœ ํ…Œ์ŠคํŠธ)
     * http://localhost:8080/delete/100?account=์šฐ๋ฆฌ์€ํ–‰
     * 
     * DELETE ๋ฐฉ์‹์€ ๋ณธ๋ฌธ(HTTP ์š”์ฒญ ๋ฉ”์‹œ์ง€ Body)๊ฐ€ ์—†๋‹ค.
     * @PathVariable๊ณผ @RequestParam์„ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฝ๋กœ ๋ณ€์ˆ˜์™€ ์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋™์‹œ์— ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
     * 
     * @param userId ์‚ญ์ œํ•˜๋ ค๋Š” ์‚ฌ์šฉ์ž์˜ ID (๊ฒฝ๋กœ ๋ณ€์ˆ˜)
     * @param account ์‚ญ์ œ ์ž‘์—…๊ณผ ๊ด€๋ จ๋œ ๊ณ„์ขŒ ์ •๋ณด (์ฟผ๋ฆฌ ํŒŒ๋ผ๋ฏธํ„ฐ)
     * @return ์‚ญ์ œ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•˜๋Š” ResponseEntity
     * ์ถ”๊ฐ€ ๊ณ ๋ ค ์‚ฌํ•ญ  
     * ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๊ฒ€์‚ฌ
     * ์‘๋‹ต ์ฒ˜๋ฆฌ: ์‚ญ์ œ๊ฐ€ ์„ฑ๊ณต์—ฌ๋ถ€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ƒํƒœ ๋‚ด๋ ค์•ผ ํ•จ 
     * (์˜ˆ: 404 Not Found, 500 Internal Server Error ๋“ฑ)
     */
    @DeleteMapping("/delete/{userId}")
    public ResponseEntity<?> delete(@PathVariable(name = "userId") String userId,
                             @RequestParam(name = "account") String account ) {
        System.out.println("userId : " + userId);
        System.out.println("account : " + account);
                                
        return ResponseEntity.status(200).body("์ •์ƒ ์‚ญ์ œ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"); 
    }

}

 

PutApiController

@RestController // Ioc (์‹ฑ๊ธ€ํ†ค ํŒจํ„ด์œผ๋กœ ๊ด€๋ฆฌ ๋จ)
public class PutApiController {
     /**
     * ์ฃผ์†Œ์„ค๊ณ„
     * http://localhost:8080/put/demo1/100
     * 
     * @return JSON
     */
    @PutMapping("/put/demo1/{id}")
    public UserDTO putMethodName(@PathVariable(name = "id") String id,
            @RequestBody UserDTO userDTO) {
        System.out.println("id" + id);
        System.out.println("userDTO" + userDTO.toString());
        // ๋ฉ”์„ธ์ง€ ์ปจ๋ฒ„ํ„ฐ (UserDTO) ->> JSON ๋ฐ˜ํ™˜์„ ํ•ด์„œ ---> ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์ฒ˜๋ฆฌ ํ•œ๋‹ค.
        return userDTO;
    }
    // @PutMapping("/put/demo1/{id}")
    // public UserDTO putMethodName(@PathVariable(name = "id") String id) {
    //     System.out.println("id" + id);
    //     // System.out.println("userDTO" + userDTO.toString());
    //     // ๋ฉ”์„ธ์ง€ ์ปจ๋ฒ„ํ„ฐ (UserDTO) ->> JSON ๋ฐ˜ํ™˜์„ ํ•ด์„œ ---> ํด๋ผ์ด์–ธํŠธ์— ์‘๋‹ต์ฒ˜๋ฆฌ ํ•œ๋‹ค.
    //     return null;
    // }

}
UserDTO

@Data
@JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
public class UserDTO {
       private String name;
    private Integer age;
    // @JsonProperty("car_list")
    private List<CarDTO> carList;
    
    // ๋น„์ •์  ๋‚ด๋ถ€ ํด๋ž˜์Šค (x) - static ์—†์„๋•Œ
    // ์Šคํ”„๋ง ๋ถ€ํŠธ DTO์„ค๊ณ„์‹œ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” static ๋‚ด๋ถ€ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์ž
    @Getter
    @ToString
    @JsonNaming(value = PropertyNamingStrategies.SnakeCaseStrategy.class)
    static class CarDTO{
        private String name;
        // @JsonProperty("car_number")
        private String carNumber;
    }

}

 

์‹คํ–‰ ๊ฒฐ๊ณผ____