inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

회원 웹 기능 - 조회

create 메서드 관련 질문드립니다.

353

taehongkim496

작성한 질문수 1

1

수업시간에 만들어본 create 메서드는 HTML form태그로 보낸 요청에 제대로 동작했습니다. 그래서 postman에서 요청을 보내도 잘 될거라 생각했습니다. 그런데 제대로 동작하지 않더라구요. 구글링을 해보니 파라미터에 @RequestBody 를 붙여야 한다는 내용을 찾았습니다. 따라하니까 제대로 동작하긴 하는데, HTML form을 통해 전달받는것과, 외부 api 테스팅 도구로 body에 값을 넣어서 전달하는게 어떤 차이가 있는지 궁금합니다. 더불어 @RequestBody가 어떤 역할을 하는지도 궁금합니다!

spring-boot MVC java spring

답변 3

1

taehongkim496

김영한님 자세한 답변 감사합니다!

대부분의 api content-type이 application/json으로 되어있어서 그거만 있는 줄 알았는데 다양한 타입이 있었네요 ㅎㅎ

0

두랄루민

postman으로 보내는 것 성공했습니다 감사합니다

0

김영한

안녕하세요. taehongkim496님 좋은 질문입니다.

아마 postman에 보시면 Body 부분에 x-www-form-urlencoded라는 것이 있고, 또 raw라는 것이 있을꺼에요.

HTTP 요청에서 HTML의 form데이터를 보낼때는 content-type이라는 해더정보가 함께 넘어가는데 이때는 application/x-www-form-urlencoded 이라는 정보가 포함되어서 넘어갑니다.

그래서 html form 처럼 동작하려면 해당 옵션을 선택하시면 됩니다.

@RequestBody는 이름 그대로 HTTP 요청의 body 부분 데이터를 그대로 스프링에서 받고 싶을 때 사용합니다. 문자로 받을 수도 있고, JSON 같은 내용 객체로도 받을 수 있습니다.

POSTMAN에서는 raw를 선택하면 됩니다^^ 그러면 선택하는 추가 옵션에 따라 content-type에 text/plain, application/json으로 요청하게 됩니다.

이 부분에 대한 자세한 내용은 준비중인 실전! 스프링 웹 MVC 강의에서 매우 자세히 설명드릴께요^^

도움이 되셨길 바래요

..

0

75

2

Unused property.....

0

99

2

project JDK is misconfigured

0

130

2

외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석

0

82

2

단위/통합 테스트 버전충돌 문제

0

91

2

❗️springboot 4.0.2 버전 aspectj dependency 설정❗️

0

228

1

왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?

0

102

2

윈도우 build test오류 질문

1

102

2

테스트 관련 공부에 대한 조언을 얻고 싶습니다

0

98

2

테스트 실행 시 에러 질문

0

290

1

name을 통한 비교와 객체를 통한 비교

0

77

1

빌드 후 libs 없음

1

128

1

윈도우 gradlew.bat 에러

0

167

1

@PostMapping("/members/new")가 동작하지 않습니다

0

88

1

java static class와 kotlin class

0

77

1

스프링 DB연결

0

126

1

소요 시간

0

85

2

ddl.sql에 빨간 밑줄

1

101

2

welcome page 에러

0

180

3

잘 모르겠습니다.

0

163

2

fail을 똑같이 쳤는데 오류가 발생해요

0

156

2

index.html Welcome page

0

121

1

프로젝트 gradle-groovy ?

0

364

1

테스트코드 메서드명 한글

0

201

2