• 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 생성
      1. src > main > java > com.sparta.week02 에 controller 패키지 생성
      2. 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();
            }
        • 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;
          }

     

    • ARC(Advanced REST Client)
      : 현업에서 API를 생성하고 테스트 및 기능 확인을 위해 사용하는 툴의 한 종류
      Method 에서 방식 선택, Request URL에 확인하고자 하는 API 주소 작성
      ‼️POST, PUT 방식
      • Header name: Content-Type
      • Parameter value: application/json
      • BODY 탭에 JSON 형식으로 정보 입력

    + Recent posts