Spring - API (GET)

Walter Mitty·2022년 5월 30일
0

Spring

목록 보기
15/19

API 를 만든다는 건? = 요청에 응답하는 걸 만드는 것
-> 요청에 응답하는 자동 응답기는???
1주차에 배웠던 Controller!!!!
응답을 JSON 형식으로 할 거니까 RestController 만들면 된다.

데이터 조회 API 만들기
1. src > main > java > com.sparta.week02 아래에 controller 패키지를 만들기
2. CourseController.java 파일을 생성
3. CourseController.java
이 과정에서는 요청이 들어왔을 때 Course 목록 전부 받아서 반환해 주는 API 만들어준다.

@RequiredArgsConstructor
//3) final이 필요하면 사용할 때 반드시 넣어주기=Lombok(스프링에 알려주는 거)
@RestController
//JSON 형식으로 응답을 해주니까 추가
public class CourseController {
    private final CourseRepository courseRepository;
    //2)밑에 메소드에서 SQL 이용해서 GET 요청하니까 repo 필요하니까 멤버변수로 만들어준다 + 꼭 필요하니까 final을 붙여준다
    @GetMapping("/api/courses")
    // localhost:8080 떼고 /api/courses 주소로 Get 요청이 오면, 아래 메소드를 실행해라.
    public List<Course> getCourses() {
        return courseRepository.findAll();
        //1)Course의 List를 반환하는 메소드인데 SQL을 활용하니까 courseRepo, 데이터에서 전부 Course 목록을 쫙 조회해서 반환하는 거니까 findAll 
    }
}
  1. Week02Appplication.java
@EnableJpaAuditing
@SpringBootApplication
public class Week02Application {
    public static void main(String[] args) {        SpringApplication.run(Week02Application.class, args);
    }
    @Bean
    public CommandLineRunner demo(CourseRepository courseRepository, CourseService courseService) {
        return (args) -> {
            courseRepository.save(new Course("프론트엔드의 꽃, 리액트", "임민영"));
            System.out.println("데이터 인쇄");
            List<Course> courseList = courseRepository.findAll();
            for (int i=0; i<courseList.size(); i++) {
                Course course = courseList.get(i);                System.out.println(course.getId());   System.out.println(course.getTitle());System.out.println(course.getTutor());
            }
            CourseRequestDto requestDto = new CourseRequestDto("웹개발의 봄, Spring", "임민영");
            courseService.update(1L, requestDto);
            courseList = courseRepository.findAll();
            for (int i=0; i<courseList.size(); i++) {
                Course course = courseList.get(i);                System.out.println(course.getId());
System.out.println(course.getTitle());
System.out.println(course.getTutor());
            }
        };
    }
}
  1. http://localhost:8080/api/courses 접속해서 아래 이미지처럼 나오나 확인

0개의 댓글