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

+ Recent posts