오답노트

[Spring Boot] PUT 본문

Java/Spring

[Spring Boot] PUT

권멋져 2023. 7. 12. 16:15

PUT

데이터를 입력할 때 사용한다. 멱등성은 유지 되지만 안정성은 보장 되지 않는다.

import com.example.put.dto.PostRequestDto;
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;

@RestController
@RequestMapping("/api")
public class PutApiController {
    @PutMapping("/put/{userid}")
    public PostRequestDto put(@RequestBody PostRequestDto postRequestDto, Long userid){
        System.out.println(postRequestDto.toString());
        System.out.println(userid);
        return postRequestDto;
    }
}
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

import java.util.List;
@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
public class PostRequestDto {
    private String name;
    private int age;

    private List<CarDto> carList;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public List<CarDto> getCarList() {
        return carList;
    }

    public void setCarList(List<CarDto> carList) {
        this.carList = carList;
    }

    @Override
    public String toString() {
        return "PostRequestDto{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", carList=" + carList +
                '}';
    }
}
import com.fasterxml.jackson.annotation.JsonProperty;

public class CarDto {
    private String name;
    @JsonProperty("car_number")
    private String carNumber;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getCarNumber() {
        return carNumber;
    }

    public void setCarNumber(String carNumber) {
        this.carNumber = carNumber;
    }

    @Override
    public String toString() {
        return "CarDto{" +
                "name='" + name + '\'' +
                ", carNumber='" + carNumber + '\'' +
                '}';
    }
}

 

JSON에서 Array를 받을 때 받을 Dto의 List를 멤버 변수로 받으면 된다.

그리고 json 전체에 대해 네이밍을 적용할 때, JsonNaming Annotation을 적용하면 된다.

'Java > Spring' 카테고리의 다른 글

[Spring Boot] Object Mapper  (0) 2023.07.13
[Spring Boot] Response  (0) 2023.07.13
[Spring Boot] POST  (0) 2023.07.12
[Spring Boot] GET  (0) 2023.07.12
[Spring Boot] 스프링 부트란  (0) 2023.07.12