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 } }
- 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()); } }; } }
- http://localhost:8080/api/courses 접속해서 아래 이미지처럼 나오나 확인