코딩공작소
REST Api 컨트롤러 개발 본문
package toyPJT.toypjt_v100.controller;
import lombok.RequiredArgsConstructor;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import toyPJT.toypjt_v100.domain.Todo;
import toyPJT.toypjt_v100.domain.dto.todoDto;
import toyPJT.toypjt_v100.service.TodoService;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequiredArgsConstructor
public class Apicontroller {
private final TodoService todoService;
@GetMapping("/todo/selectAll")
public ResponseEntity<List<Todo>> findTodos(){
return ResponseEntity.ok().body(todoService.findTodos());
}
@PostMapping("/todo/addTodo")
public ResponseEntity<Todo> addTodo(todoDto tododto){
Todo todo = new Todo();
todo.setContent(tododto.getContent());
todo.setCompleteYn(tododto.getCompleteYn());
todoService.saveTodo(todo);
return ResponseEntity.ok()
.body(todo);
}
@PutMapping("/todo/editTodo")
public ResponseEntity<Map<String, Object>> editTodo(todoDto todoDto){
try {
todoService.updateTodo(todoDto.getTodoId(), todoDto.getCompleteYn(), todoDto.getContent());
}catch (Exception ex){
Map<String, Object> result = new HashMap<>();
result.put("resultMessage", ex.getMessage());
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(result);
}
return ResponseEntity.ok().build();
}
@DeleteMapping("/todo/deleteTodo/{id}")
public ResponseEntity<Todo> deleteTodo(@PathVariable long id){
Todo todoServiceOne = todoService.findOne(id);
todoService.deleteTodo(id);
return ResponseEntity.ok().body(todoServiceOne);
}
}
기본적으로 CRUD를 위한 API들을 개발했다.
ResponseEntity로 응답값을 전달하는 부분들에 대해 좀 더 자세히 알게되었다.
그리고 업데이트 시, 해당 데이터가 없으면 NullPointerException이 발생하는 부분이 있어 예외처리 부분도 추가해줬다.
추후로, Mock을 통해 테스트코드를 짜는 걸 한번 해보고싶은 마음이 있다.. 흠
그리고는 이제 JS단에서 해당 API들을 ajax로 호출해서 기능들을 연결해주는 개발들을 진행해볼까 한다.
'어플리케이션개발 > 토이프로젝트(취미)' 카테고리의 다른 글
회원 도메인 추가/회원가입 및 Todo 도메인과 연결 (0) | 2024.11.19 |
---|---|
Todo 메인 페이지 기능 개발 및 서버 수정 (2) | 2024.11.03 |
토이프로젝트 (Made by.GPT) (1) | 2024.10.30 |
스프링부트 Service단에 대한 테스트코드 개발 (0) | 2024.10.24 |
AWS EC2에서 mysql RDS 접속 (0) | 2024.10.23 |