inflearn logo
강의

Course

Instructor

Create your first server with Java and Spring Boot, from development to deployment, easily! [All-in-one server development package]

Lecture 14. Development and Testing of User Update and Delete APIs

request

532

작성자 없음

0 asked

1

public void updateUser(@RequestBody UserUpdateRequest request)에서 request를 다른 이름으로 바꾸면 밑줄이 쳐지는데 왜 바꾸면 안 되는 건가요?

mysql aws spring-boot java jpa JPA spring

Answer 2

0

lannstark

안녕하세요, 1026999님!! 답변해주셔서 정말 감사드립니다! 🙏🙏

1026999님께서 말씀해주신 내용은 request로 되어 있는 UserUpdateRequest 객체의 필드 이름을 바꾸었을 때와 관련이 있고, 실제로 @JsonProperty 와 같은 jackson 어노테이션을 사용해 해결할 수 있습니다. (관련 블로그 : https://gilu-world.tistory.com/100)

 

ㅇㅇ님의 질문에도 추가적으로 답변을 드려볼게요! 혹시 말씀해주시는 "밑줄이 쳐진다"라는게 이런 상황이실까요?

image

질문 주신 내용이 "request 라는 파라미터 이름을 바꿀 수 있는가?" 라면 바꿀 수 있습니다!

현재 위의 코드는 파라미터의 이름만 request 에서 req 로 바꾸고 해당 파라미터를 사용하는 코드를 request 에서 req 로 바꾸지 않아 빨간 에러 표시가 나고 있습니다.

image

즉, 아래에서 파라미터를 사용할 때 req 라고 표시해준다면 정상적으로 활용가능하다는 의미입니다!

@RequestBody 라는 어노테이션을 붙였을지라도, 결국 하나의 함수 파라미터이기 때문에 원하시는대로 request 라는 이름을 변경하실 수 있습니다. 😊

 

감사합니다!! 🙏

0

1026999

밑줄이 쳐지는 이유는 @RequestBody 어노테이션으로 인해 스프링이 해당 매개변수가 HTTP 요청의 본문(body)에 있는 JSON 또는 XML 데이터로부터 값을 바인딩해야 한다는 것을 나타내기 위해서입니다.

따라서 해당 매개변수를 바꾸면 스프링이 HTTP 요청 본문으로부터 데이터를 바인딩하지 못하게 되므로 밑줄이 쳐지는 것입니다. 만약 매개변수 이름을 변경하고 싶다면, @JsonProperty 어노테이션을 사용하여 요청 본문의 필드 이름과 매핑할 수 있습니다. 예를 들어, UserUpdateRequest 클래스에서 name 필드를 userName으로 변경하려면 다음과 같이 @JsonProperty 어노테이션을 사용할 수 있습니다:

 codepublic class UserUpdateRequest {
    @JsonProperty("userName")
    private String name;
    // ...
}

이제 userName 필드 이름을 사용하여 HTTP 요청 본문에서 데이터를 바인딩할 수 있습니다.

리액트 관련 질문이 있습니다.

0

58

2

스프링부트 버전

0

64

2

7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.

0

52

2

33강. UserLoanHistory의 관계성에 대한 질문

1

50

2

Java JDK 버전 문의의 건

0

126

2

ec2 에서 Linux버전이 달라져서 설치가 안되는것 같은데 자료 최신화좀 해주세요.

0

81

3

h2 console 접속했을 테이블 질문

1

62

1

ec2 서버에서 스프링 실행도 되고 인바운드 설정까지 했는데 index.html 안됨

0

71

2

15강. updateUser() 질문

0

51

2

깃허브 질

0

77

2

여기까지 다 끝냈다고 하셨는데

0

75

2

왜안될까요

0

67

2

MySQL 창이안ㄴ뜹니다

0

53

2

포스트맨

0

46

1

spring 개념적인 질문

0

68

2

인텔리제이 샘플코드 실행 안됨 오류

0

138

2

aws 배포할때 .env 파일에 저장한 환경변수에 관하여 여쭤볼게 있습니다

0

81

1

마이그레이션 오류입니다.

0

165

3

Whitelabel Error Page 오류가 났습니다.

0

154

2

안녕하십니까! 오류가 났습니다.. 도와주세요 ㅜㅜ

1

85

3

궁금한게 있습니다.

0

53

2

DTO 관련

0

65

2

궁금한게 있습니다!

0

59

2

35강에서 returnBook 에서 userLoanHistory 값 중복에 관하여

0

51

2