트러블 슈팅
@PathVariable에 익숙해서 2가지를 만들어서 진행 하려고 했는데 API는 1개만 만들어야 한다는 조건이 있어 고민 하다 튜터님께 질문 했다.
// 전체 조회
// 작성자명은 조회 조건으로 포함될 수도 있고, 포함되지 않을 수도 있습니다.
// ex) @GetMapping("/schedules/{nickName}")
// /schedules?nickName=김철수
// http://localhost:8080/schedules?nickName=최길중
@GetMapping("/schedules")
public ResponseEntity<List<GetScheduleResponse>> getSchedule(// String nickName) 원래 이거
@RequestParam(required = false) String nickName
){
// return ResponseEntity.status(HttpStatus.OK).body(scheduleService.findAll());
return ResponseEntity.ok(scheduleService.findAll(nickName));
}
@RequestParam을 이용해서 푸는 내용이였다.
그렇다면 service를 수정 해야 겠지? 원래 나는 그냥 GetMapping으로 전체 수정을 만들었다.
이전에 없었던 내용 추가
List<Schedule> schedules;
if (nickName == null ) {
schedules = scheduleRepository.findAll();
} else {
schedules = scheduleRepository.findAllByNickName(nickName); // repository에 추가 findAllByNickName
}


잘나오는 모습!!
@PathVariable / @RequestParam / @RequestBody
@GetMapping("/schedules/{id}")
public ScheduleResponse getOne(@PathVariable Long id) { ... }
@PatchMapping("/schedules/{id}")
public ScheduleResponse update(@PathVariable Long id, @RequestBody UpdateDto dto) { ... }
@DeleteMapping("/schedules/{id}")
public void delete(@PathVariable Long id) { ... }
@GetMapping("/schedules")
public List<ScheduleResponse> list(
@RequestParam(required = false) String authorName,
@RequestParam(required = false) String sort,
@RequestParam(required = false, defaultValue = "0") int page
) { ... }
@PostMapping("/schedules")
public ScheduleResponse create(@RequestBody CreateDto dto) { ... }
@PutMapping("/schedules/{id}")
public ScheduleResponse replace(@PathVariable Long id, @RequestBody UpdateDto dto) { ... }
Body(JSON) 예:
{
"title": "회의",
"content": "10시 회의",
"authorName": "최길중",
"password": "1234"
}