Spring
[Spring] API
jelliclesu
2024. 7. 18. 19:17
- API
: 클라이언트 - 서버 간의 약속
클라이언트가 정한대로 서버에게 요청(Request)을 보내면, 서버가 요구사항을 처리하여 응답(Response)을 반환
- REST
: 주소에 명사, 요청 박식에 동사(CRUD)를 사용함으로써 의도를 명확히 드러냄을 의미
➡️ 즉, 생성(POST)/조회(GET)/수정(PUT)/삭제(DELETE) 요청
✔️예시
⚠️ 주소에 들어가는 명사들은 복수형을 사용하고, 동사는 가급적 사용하지 않음
- GET /courses -> 강의 전체 목록 조회 요청
- GET /courses/1 -> ID가 1번인 녀석 조회 요청
- POST /coures -> 강의 생성 요청
- PUT /courses/3 -> ID가 3번인 녀석 수정 요청
- DELETE /courses/2 -> ID가 2번인 녀석 삭제 요청
- API 생성
- src > main > java > com.sparta.week02 에 controller 패키지 생성
- CourseController.java 파일 생성
@RequiredArgsConstructor @RestController public class CourseController { private final CourseRepository courseRepository; // API 작성 }
- GET
@GetMapping("/api/courses") public List<Course> getCourses() { return courseRepository.findAll();
- POST
-
@PostMapping("/api/courses") public Course createCourse(@RequestBody CourseRequestDto requestDto) { Course course = new Course(requestDto); return courseRepository.save(course); }
- Course.java 에 생성자 추가
public Course(CourseRequestDto requestDto) { this.title = requestDto.getTitle(); this.tutor = requestDto.getTutor(); }
- Course.java 에 생성자 추가
- PUT
@PutMapping("/api/courses/{id}") public Long updateCourse(@PathVariable Long id, @RequestBody CourseRequestDto requestDto) { return courseService.update(id, requestDto); }
- DELETE
@DeleteMapping("/api/courses/{id}") public Long deleteCourse(@PathVariable Long id) { courseRepository.deleteById(id); return id; }
- GET
- ARC(Advanced REST Client)
: 현업에서 API를 생성하고 테스트 및 기능 확인을 위해 사용하는 툴의 한 종류
Method 에서 방식 선택, Request URL에 확인하고자 하는 API 주소 작성
‼️POST, PUT 방식
- Header name: Content-Type
- Parameter value: application/json
- BODY 탭에 JSON 형식으로 정보 입력