반응형
지난 포스팅에 이어 POST/DELETE 요청 부분을 다뤄보겠습니다.
[ DemoRestController 클래스 수정 ]
상품 등록을 위한 메서드는 addProduct()로 Product 객체를 인자로 받는다.
@PostMapping("/product")
public String addProduct(@RequestBody Product p) {
pm.addProduct(p);
return "상품 추가됨!";
}
- URI 는 상품목록을 가지고 오는 경우와 동일 하지만 @PostMapping 애너테이션인 점이 다르다.
- @RequestBody 는 POST 요청시 전달되는 HTTP Body 의 내용으로 JSON 형태로 전달되어야 하며 Product 클래스와 매핑된다.
다음은 상품 삭제를 위한 메서드이다. @DeleteMapping 애너테이션을 사용하는 것이 표준이지만, @GetMapping 애너테이션을 사용해도 된다.
@DeleteMapping("/product/{id}")
public String delProduct(@PathVariable int id) {
om.delProduct(id);
return "상품삭제됨!";
}
- @PathVariable을 사용한다.
[ postman 테스트 ]
postman은 대표적인 REST API 테스트 클라이언트 프로그램이다. 웹, PC, MAC 등 모든 플랫폼에서 사용할 수 있으며 클라우드 기반 동기화도 지원하기 때문에 여러 디바이스 에서 동일한 테스트 환경을 유지 하기 좋다.
- HTTP Method 는 GET으로 지정.
- URL 은 http://localhost:8080/api/product
- Headers 섹션에 Content-Type 을 applicaton/json 으로 지정
- 그럼 Body에 결과가 출력된다.(처음 ArrayList에는 기본적인 상품 4개만 존재하므로 4개에 대한 상품의 데이터가 json형식으로 출력된다.)
다음은 HTTP Method를 POST로 지정을 한다. POST 방식은 내가 데이터를 직접 보내야 하므로 Body 섹션에 다음과 같이 추가할 데이터를 JSON으로 작성을 한다. 이때, id 필드는 상품 등록시 자동으로 추가되므로 넣지 않는다.
{
"name": "Samsung OLED TV",
"price": 3500000
}
위와 같이 작성을 하고 Send 버튼을 눌러 실행하면 하단에 "상품추가됨!"이라는 성공적인 문구가 출력된다.
마찬가지로, URI를 GET방식으로 /product/api/2를 입력을 하고 Send를 눌러 실행하면 해당하는 id상품만 출력이 된다.
마지막으로, HTTP Method를 Delete로 설정하고 URI를 입력해도 해당하는 id 상품만 삭제가 되는 것을 알 수 있다.
반응형
'Programming > Spring Framework' 카테고리의 다른 글
[스프링부트] @JsonNaming, @JsonProperty는 언제 사용할까? (1) | 2021.05.12 |
---|---|
[스프링] IoC Container에 Bean 객체가 등록되는 방법 두 가지를 알아보자 (0) | 2021.01.09 |
[스프링] DI(Dependency Injection) 의존성 주입에 대해 알아보자 (0) | 2021.01.09 |
[스프링부트] postman을 활용한 간단한 RESTful 웹 서비스 만들기 - GET 요청 (0) | 2019.09.22 |
[스프링부트] Bean 객체를 등록하는 두 가지 방법(@Component, @Bean) (4) | 2019.09.20 |