-
[Restuful 학습] - PostMapping 설명 및 예제SPRING/WEBSERVICE 2020. 8. 3. 21:47
package com.example.demo.user; import java.util.ArrayList; import java.util.Date; import java.util.Iterator; import java.util.List; import org.springframework.stereotype.Service; @Service public class UserDaoService { private static List<User> users = new ArrayList<>(); private static int usersCount =3; static { users.add(new User(1, "bins1",new Date(),"pass1","701010-1111111")); users.add(new User(2, "bins2",new Date(),"pass2","801010-1111111")); users.add(new User(3, "bins3",new Date(),"pass3","901010-1111111")); } public User save(User user) { if(user.getId() == null) { user.setId(++ usersCount); } users.add(user); return user; } }
package com.example.demo.user; import java.net.URI; import java.util.List; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.servlet.support.ServletUriComponentsBuilder; import javax.validation.Valid; @RestController public class UserController { private UserDaoService service; public UserController(UserDaoService service) { this.service = service; } @PostMapping("/users") public ResponseEntity<User> createUser(@Valid @RequestBody User user) { User savedUser = service.save(user); URI location = ServletUriComponentsBuilder.fromCurrentRequest() .path("/{id}") .buildAndExpand(savedUser.getId()) .toUri(); return ResponseEntity.created(location).build(); } }
위 소스는 새로운 User를 생성할 때 호출하는 createUser 메서드 로직이다.
@PostMapping을 사용하여, POST방식 통신으로 Request가 왔을 때 메서드가 수행된다.
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")
.buildAndExpand(savedUser.getId())
.toUri();의 location은 로컬에서 실행시 아래와 같이 찍힌다.
location -> http://localhost:8080/users/5
ResponseEntity는 Http 응답에 대한 정보를 갖고 있는 객체이다.
.created를 통하여 201번 응답을 내려준다.
'SPRING > WEBSERVICE' 카테고리의 다른 글
[Restuful 학습] - DeleteMapping 실습 및 예제 (0) 2020.08.08 [Restuful 학습] - Exception 핸들링을 통한 HTTP STATUS Code 관리법 (ControllerAdvice 사용) (0) 2020.08.04 [Restuful 학습] - GetMapping 설명 및 예제 (0) 2020.08.01 [Restful 학습] - PathVariable (0) 2020.08.01 [RestFul 학습] - EXCEPTION관리 (0) 2020.05.28