-
[Restuful 학습] - DeleteMapping 실습 및 예제SPRING/WEBSERVICE 2020. 8. 8. 12:55
package com.example.demo.user; @RestController public class UserController { private UserDaoService service; public UserController(UserDaoService service) { this.service = service; } @DeleteMapping("/users/{id}") public void deleteUser(@PathVariable int id) { User user = service.deleteById(id); if(user == null) { throw new UserNotFoundException(String.format("ID[%s] not found",id)); } } }
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 List<User> findAll() { return users; } public User deleteById(int id) { Iterator<User> iterator = users.iterator(); while(iterator.hasNext()) { User user = iterator.next(); if(user.getId() == id) { iterator.remove(); return user; } } return null; } }
위 로직에서는 @DeleteMapping 어노테이션이 붙어있기 때문에, HTTP Request를 Delete 방식으로 보냈을 때에만 RestController에서 해당 Request를 받는다.
간략하게 말해서 입력되어있는 User 정보를 삭제하는 로직이다.
정상적으로 삭제하였을때에는 아래와 같이 별다른 정보를 return하지 않지만, 삭제할 유저가 없을 경우에는 UserNotFoundException에서 정의한 ResponseEntity를 리턴한다.
'SPRING > WEBSERVICE' 카테고리의 다른 글
[Restuful 학습] - 다국어처리 실습 및 예제 (0) 2020.08.08 [Restuful 학습] - Validation 체크 (@Valid 사용) (0) 2020.08.08 [Restuful 학습] - Exception 핸들링을 통한 HTTP STATUS Code 관리법 (ControllerAdvice 사용) (0) 2020.08.04 [Restuful 학습] - PostMapping 설명 및 예제 (0) 2020.08.03 [Restuful 학습] - GetMapping 설명 및 예제 (0) 2020.08.01