728x90
- API
클라이언트와 서버 간의 약속
클라이언트가 정한 대로 서버에게 요청 Request를 보내면
서버가 요구사항을 처리하여 응답 Response를 반환함
- REST
주소에 명사 & 요청 방식에 동사를 사용함으로써 의도를 명확히 드러냄
생성(POST)/ 조회(GET)/ 수정(PUT)/ 삭제(DELETE)
요청 방식 | 주소 | 뜻 |
POST | localhost:8080/courses | 강의 생성 요청 |
GET | localhost:8080/courses | 강의 전체 목록 조회 요청 |
GET | localhost:8080/courses/1 | ID가 1번인 데이터 조회 요청 |
PUT | localhost:8080/courses/3 | ID가 3번인 데이터 수정 요청 |
DELETE | localhost:8080/courses/2 | ID가 2번인 데이터 삭제 요청 |
* 주소에 들어가는 명사들은 복수형 사용!!!
ex) /course (X)
* 주소에 동사는 가급적 사용하지 않음!!!
ex) /accounts/edit (X)
- GET
데이터 조회 API 만들어보기
/*CourseController.java*/
package com.sparta.week02.controller;
...
@RequiredArgsConstructor //Repository를 대신해서 넣어주는 역할
@RestController //JSON으로 응답
public class CourseController {
private final CourseRepository courseRepository;
@GetMapping("/api/courses") //Get방식: 데이터 조회 요청
public List<Course> getCourses() {
return courseRepository.findAll();
}
}
/*Week02Application.java*/
//수정한 부분 없음 그대로 실행
package com.sparta.week02;
...
@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("id: " + course.getId() +
"/ title: " + course.getTitle() +
"/ tutor: " + course.getTutor());
}
};
}
}
- 결과 화면
'Spring Framework' 카테고리의 다른 글
타임라인서비스) Repository 만들기 (0) | 2021.07.21 |
---|---|
API - POST, PUT, DELETE (0) | 2021.07.21 |
Lombok, DTO (0) | 2021.07.18 |
JPA) JPA 심화 (0) | 2021.07.14 |
JPA) 생성일자, 수정일자 (0) | 2021.07.11 |