일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- bfs
- azure
- Java
- 메모이제이션
- 추상화
- dotenv
- PostgreSQL
- Secret
- Solid
- 캡슐화
- package
- npm
- mock
- process.env
- MariaDB
- 디자인 패턴
- 동적계획법
- 상속
- 객체지향
- github
- 서브셋폰트
- 클라우드
- DP
- GOF
- CSS
- git
- 다형성
- dfs
- netlify
- AOP
Archives
- Today
- Total
이것저것 해보기🌼
[REST API] PUT 다루기 본문
PUT을 다루는 방법
(POST와 비슷하다)
PUT은 항상 RequestBody가 인자로 들어가야한다.
package com.example.put;
import com.example.put.dto.PostRequestDto;
import org.springframework.web.bind.annotation.*;
@RestController
@RequestMapping("/api")
public class PutApiController {
/* JSON 형식
{
"name" : "seohee",
"age" : 26,
"car_list" : [
{
"name" : "Audi",
"car_number" : "11가 1234"
},
{
"name" : "BMW",
"car_number" : "22가 1234"
}
]
}
*/
@PutMapping("/put")
public PostRequestDto put(@RequestBody PostRequestDto postRequestDto){
System.out.println(postRequestDto);
return postRequestDto;
}
@PutMapping("/put2/{userId}")
public PostRequestDto put2(@RequestBody PostRequestDto postRequestDto, @PathVariable (name = "userId") Long id){
System.out.println(id);
return postRequestDto;
}
}
이번에는 Dto 클래스와 Car 클래스를 만들어서 그사람이 가진 차 리스트를 object 형식으로 받아올것이다.
package com.example.put.dto;
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 +
'}';
}
}
package com.example.put.dto;
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 + '\'' +
'}';
}
}
주의할 점은 항상 snake case로 annotation 을 시켜주는 것이다.
그렇지 않으면 값을 제대로 받지 못한다.
방법:
@JsonNaming(value = PropertyNamingStrategy.SnakeCaseStrategy.class)
: 클래스 위에 지정할때
@JsonProperty("car_number")
private String carNumber;
: 변수위에 지정할때
'BE > Spring Boot' 카테고리의 다른 글
Response 내려주기 (0) | 2021.07.03 |
---|---|
[REST API] DELETE 다루기 (0) | 2021.06.30 |
[REST API] POST 다루기 (0) | 2021.06.30 |
[REST API] GET 다루기 (0) | 2021.06.30 |
웹 개발 개론 (0) | 2021.06.30 |