이번 포스트에서는 Spring boot의 RestAPI Post에 대해서 알아보자.
먼저 DTO를 만들자.
BookRequest.java파일을 스프링 폴더의 패키지 안에 생성해주고 아래와 같이 DTO를 생성해준다.
package org.example.restapi.restapi.controller.model;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class BookRequest {
private String name;
private String number;
private String category;
}
그 후 PostApiController.java파일을 만들어 RestController을 작성해보자.
package org.example.restapi.restapi.controller;
import org.example.restapi.restapi.controller.model.BookRequest;
import org.springframework.web.bind.annotation.PostMapping;
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 PostApiController {
//http://localhost:8080/api/post
@PostMapping("/post")
public BookRequest post(
@RequestBody BookRequest bookRequest
){
System.out.println(bookRequest);
return bookRequest;
}
}
이 클래스가 RESTful 웹 서비스의 컨트롤러로 동작함을 나타내는 어노테이션이다.
이 컨트롤러의 모든 핸들러 메서드가 처리할 기본 URL 경로를 설정한다. 예를 들어 여기서는 htttp://loaclhost:8080/api 로 설정되는 것이고 이후의 경로는 이후의 메서드에서 결정 및 설정한다.
RequestMapping의 특수한 형태로, HTTP POST 요청을 처리하는 메서드임을 나타낸다. 여기서는 /api/post 경로로 POST 요청이 오면 이 메서드가 요청을 처리한다.