도슐랭스타

ReadingRecordController 생성, get/post Test 본문

Spring Boot project

ReadingRecordController 생성, get/post Test

도도.__. 2025. 4. 12. 10:13

사용자가 요청을 처리함
[사용자 클릭][Controller][Service][Repository][DB 저장]

ReadingRecordController.java

package me.dodo.readingnotes.controller;

import me.dodo.readingnotes.domain.ReadingRecord;
import me.dodo.readingnotes.service.ReadingRecordService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;

@RestController
@RequestMapping("/records")
public class ReadingRecordController {

    private final ReadingRecordService service;

    @Autowired
    public ReadingRecordController(ReadingRecordService service) {
        this.service = service;
    }

    // 1. 기록 저장
    @PostMapping
    public ReadingRecord save(@RequestBody ReadingRecord record){
        return service.saveRecord(record);
    }

    // 2. 전체 조희
    @GetMapping
    public List<ReadingRecord> getAll(){
        return service.getAllRecords();
    }

    // 3. ID로 조회
    @GetMapping("/{id}")
    public ReadingRecord getById(@PathVariable Long id){
        return service.getRecord(id);
    }

    // 4. 삭제
    @DeleteMapping("/{id}")
    public void delete(@PathVariable Long id){
        service.deleteRecord(id);
    }
}

여기서 사용하는 어노테이션

@RestController -  웹 요청을 처리하는 Controller임을 나타냄
@RequestMapping("/records")
- /records로 시작하는 요청 처리
@Autowired - Service를 자동으로 주입해 줌.
@PostMapping, @GetMapping, @DeleteMapping
- 각각 POST, GET, DELETE 요청을 처리
@RequestBody
- JSON으로 들어온 데이터를 자바 객체로 변환
@PathVariable
- URL 경로의 {id} 값을 변수로 받음


@Autowired

Spring이 관리하는 객체(Bean)를 자동으로 주입해줌.

어떤 걸 주입할 수 있나?

Spring이 관리하는 거면 전부 가능해!

대상 예시
Repository ReadingRecordRepository
Service ReadingRecordService
Component @Component 붙은 클래스
Configuration 설정 클래스

Get/Post Test

postman으로 테스트

오 잘 되는군.

getRecord(1)

잘된다!!

반응형

'Spring Boot project' 카테고리의 다른 글

H2 DB 설정  (0) 2025.04.14
DTO 클래스 생성 Request, Response  (1) 2025.04.13
ReadingRecordService 생성  (0) 2025.04.11
ReadingRecordRepository 생성  (0) 2025.04.10
ReadingRecord 엔티티 생성  (0) 2025.04.09
Comments