오답노트
[Spring Boot] PUT 본문
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 |