RestAPI 알아보기 (Put - with DTO)

Gihongg·2024년 3월 16일

Spring Boot

목록 보기
5/24
post-thumbnail

먼저 데이터 통신에 사용할 객체 데이터 DTO를 만들자.

package org.example.restapi.restapi.controller.model;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class UserInfo{
    private String userName,phoneNumber, email;
    private Boolean isKorean; //boolean 타입의 is 라는 시리즈는 isKorean의 set메서드가 SetisKorean 이 아닌 setKorean으로 설정된다.
                                //그렇기 때문에 레퍼런스 타입인 Boolean 타입을 사용해야한다.
}

위와 같이 UserName, phoneNumber, email, isKorean을 변수로 갖고, 모든 변수들은 set메서드를 가진다. (Data 어노테이션 덕분)

이렇게 각 set, get메서드들이 생성되고 이 get메서드들을 사용해 Json 형식으로 들어온 각 {키: 값}들을 가지고 userInfo를 구성한다.

PutApiContorller

이제 이 DTO객체를 가지고 실제 put기능을 수행하는 코드를 써보자

package org.example.restapi.restapi.controller;

import lombok.extern.slf4j.Slf4j;
import org.example.restapi.restapi.controller.model.UserInfo;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@Slf4j
@RestController
@RequestMapping("/api")
public class PutApiController {


    @PutMapping("/put")
    public void put(@RequestBody UserInfo userInfo){
    log.info("Request : {}",userInfo);
    }
}

위의 코드에서 log.info 메서드를 사용한 이유는 로그메서드를 활용한 출력이 로그에 할당된 버퍼를 사용하기 때문이다.

로그에 이미 할당된 버퍼를 사용함으로써 메모리를 효율적으로 사용할 수 있고, 디버깅 추적이 가능하다는 장점이 있다.

profile
전천후 개발자

0개의 댓글