반응형
리소스 갱신/ 생성, 멱등성, Path Variable, DataBody, Query Parameter
Json 디자인
{
"name" : "",
"age" : ,
"car_list" : [
{
"name" : "",
"car_number" : ""
},
{
"name" : "",
"car_number" : ""
}
]
}
예제
dto 작성
package com.example.put.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
public class CarDto {
private String name;
// 받을 JSON key값 직접지정
@JsonProperty(value = "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 + '\'' +
'}';
}
}
package com.example.put.dto;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;
import java.util.List;
// @JsonNaming: JSon에서 SnakeCase로 전달받을 때 해당 데이터를 받을수 있도록 클래스 전체적으로 적용
@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
public class PutRequetDto {
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 "PutRequetDto{" +
"name='" + name + '\'' +
", age=" + age +
", carList=" + carList +
'}';
}
}
controller 작성
package com.example.put;
import com.example.put.dto.PutRequetDto;
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")
public PutRequetDto put(@RequestBody PutRequetDto putRequetDto){
System.out.println(putRequetDto.toString());
// RestController를 이용하면 return 데이터가 자동으로 Json형태로 보내진다.
return putRequetDto;
}
}
json 작성
{
"name" : "steve",
"age" : 20,
"car_list" : [
{
"name" : "BMW",
"car_number" : "11가 3333"
},
{
"name" : "A4",
"car_number" : "22가 3333"
}
]
}
테스트
json 형태로 return 확인
콘솔 확인
PathVariable 사용
@PutMapping("/put/{userId}")
public PutRequetDto put(@RequestBody PutRequetDto putRequetDto, @PathVariable(name = "userId") Long id){
System.out.println(putRequetDto.toString());
System.out.println(id);
// RestController를 이용하면 return 데이터가 자동으로 Json형태로 보내진다.
return putRequetDto;
}
반응형
'Spring' 카테고리의 다른 글
Response 내려주기 (0) | 2021.06.12 |
---|---|
Delete API (0) | 2021.06.12 |
Post API (0) | 2021.06.12 |
Get API (0) | 2021.06.12 |
Hello World API 만들기 (0) | 2021.06.12 |