- GET API에서는 URL 경로나 파라미터에 변수를 넣어 요청을 보낸다.
- POST API에서는 저장하고자하는 리소스나 값을 HTTP 바디에 담아 서버에 전달한다.
POST 메서드 구현을 위해 새로운 Controller 클래스를 생성해놓았다.
@RequestMapping을 이용한 POST 메서드 구현
→ 브라우저에서 주소를 입력하는 것은 GET 방식이므로 POST API 요청시 다음과 같은 405 에러 발생
- Talend API Tester로 POST 요청 확인하기
@RequestBody를 이용한 POST 메서드 구현
- 일반적으로 POST 형식의 요청은 클라이언트가 서버에 리소스를 저장하는 데 사용한다
- HTTP Body에 리소스를 담아서 POST 요청
- JSON 형식으로 값을 주고 받는다 (key:value의 딕셔너리 형태)
위와 같이 작성 후 Talend API Tester에서 요청을 Send 했으나 500 에러 발생
java.lang.reflect.InaccessibleObjectException: Unable to make private java.util.Objects() accessible: module java.base does not "opens java.util" to unnamed module @22a2a654 at java.base/java.lang.reflect.AccessibleObject.throwInaccessibleObjectException(AccessibleObject.java:391) ~[na:na]
—> Objects가 아니라 Object이다.. (오타)
→ 200 OK 메시지를 통해 POST 요청이 잘 된 것을 확인할 수 있다.
DTO를 이용해 POST 메서드 구현
- 동일한 요청을 memberDTO를 이용해 작성
- 자주 사용하는 객체는 DTO를 이용해 호출하는 것이 편리하다
- 서버에 어떤 값이 들어올지 모르는 경우 → Map 객체 활용
- 서버에 들어오는 요청에 담긴 값이 정해져 있는 경우 → DTO 객체 활용
- 자주 사용하는 객체는 DTO를 이용해 호출하는 것이 편리하다
'Backend > SpringBoot' 카테고리의 다른 글
[SpringBoot] 다양한 방법으로 DELETE API를 생성해보자 (0) | 2024.08.22 |
---|---|
[SpringBoot] 다양한 방법으로 PUT API를 생성해보자 (0) | 2024.08.22 |
[SpringBoot] 다양한 방법으로 GET API를 생성해보자 (0) | 2024.08.22 |
[SpringBoot] Spring 공식 사이트에서 프로젝트 생성하고 웹 사이트에 Hello World 출력해보자 (0) | 2024.08.22 |
[SpringBoot] 스프링부트 애플리케이션 구성 요소들을 알아보자 (0) | 2024.08.22 |