1.경로
2. 사용법
- GET
@RequiredArgsConstructor
@RestController
public class CourseController {
private final CourseRepository courseRepository;
@GetMapping("/api/courses")
public List<Course> getCourses() {
return courseRepository.findAll();
}
}
- POST
private final CourseService courseService;
// PostMapping을 통해서, 같은 주소라도 방식이 다름을 구분합니다.
@PostMapping("/api/courses")
public Course createCourse(@RequestBody CourseRequestDto requestDto) {
// requestDto 는, 생성 요청을 의미합니다.
// 강의 정보를 만들기 위해서는 강의 제목과 튜터 이름이 필요하잖아요?
// 그 정보를 가져오는 녀석입니다.
// 저장하는 것은 Dto가 아니라 Course이니, Dto의 정보를 course에 담아야 합니다.
// 잠시 뒤 새로운 생성자를 만듭니다.
Course course = new Course(requestDto);
// JPA를 이용하여 DB에 저장하고, 그 결과를 반환합니다.
return courseRepository.save(course);
}
Course 클래스에 생성자 추가
// requestDto를 받아 멤버변수 세팅
public Course(CourseRequestDto requestDto){
this.title = requestDto.getTitle();
this.tutor = requestDto.getTutor();
}
- PUT
@PutMapping("/api/courses/{id}")
public Long updateCourse(@PathVariable Long id, @RequestBody CourseRequestDto requestDto) {
return courseService.update(id, requestDto);
}
** @PathVariable : url에서 넘어온 {id}값을 파라미터로 넘겨준다.
- DELETE
@DeleteMapping("/api/courses/{id}")
public Long deleteCourse(@PathVariable Long id) {
courseRepository.deleteById(id);
return id;
}
'프로그래밍 > SpringBoot' 카테고리의 다른 글
나만의 셀렉샵 API (1) - 프로젝트 설계 및 API 구현 (0) | 2022.05.25 |
---|---|
JPA 아키텍처 (0) | 2022.05.22 |
Rest API란? (Rest의 개념) (0) | 2022.05.22 |
DTO 설정 (DAO/DTO/VO 개념) (0) | 2022.05.22 |
Lombok (0) | 2022.05.22 |