Spring Framework

API-GET

na_o 2021. 7. 18. 22:17
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());
            }
        };
    }
}

 

- 결과 화면

 

브라우저에 주소를 입력하여 이동하면 JSON 형태의 데이터가 보임

 

ARC를 설치하여 URL을 테스트해본 화면. GET방식으로 요청하면 JSON으로 응답이 옴

 

'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