개발자는신이야
The first step
개발자는신이야
전체 방문자
오늘
어제
  • 분류 전체보기 (114)
    • 🍃웹개발 Spring (15)
    • ❓내 질문 (4)
    • 🔥웹개발종합반 (11)
    • 💻개인프로젝트 (5)
    • 😕error (2)
    • 💡알고리즘 (3)
    • 📖혼자공부하는자바 (22)
    • 📑WIL (2)
    • 🥸 CS 면접 스터디 (13)
    • 🤓천재교육 풀스택 1기 노트 (21)
    • ⏰정처기 공부 (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • JPA
  • jquery
  • HTML
  • Lombok
  • repository
  • 변수
  • Spring
  • CSS
  • Controller
  • 기초
  • CRUD
  • boot
  • API
  • db
  • dependencies
  • style
  • IntelliJ
  • database
  • Java
  • SQL

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
개발자는신이야

The first step

🍃웹개발 Spring

[Spring] API - GET

2022. 9. 27. 17:38

API란,

클라이언트와 서버(프론트엔드와 백엔드) 서로간의 약속이다.

클라이언트가 정한대로 서버에게 요청(Request)을 보내면,

서버가 요구사항을 처리하여 응답(Response)한다.


여기서 요청되는 자원의 이름을 구분하여 해당 자원의 상태(정보)를 주고 받는 역할을 해야하는데,

그 역할을 하는 친구가 "REST"이다.

REST란,

앞서 말했듯 요청되는 자원에 이름을 구분해야 되기 때문에 주소에 명사, 요청방식에 동사를 사용함으로써 의도를 명확히 드러내야한다는 의미이다.

※여기서의 동사는 CRUD를 지칭한다.

예시:

  • GET /courses → 강의 전체 목록 조회 요청
  • GET /courses/1 → ID가 1번인 녀석 조회 요청
  • POST /courses → 강의 생성 요청
  • PUT /courses/3 → ID가 3번인 녀석 수정 요청
  • DELETE /courses/2 → ID 2번인 녀석 삭제 요청

주의사항:

  • 주소에 들어가는 명사들은 복수형을 사용합니다.
    • /course
  • 주소에 동사는 가급적 사용하지 않습니다.
    • /accounts/edit

GET(READ)

Get은 데이터를 조회하는(READ) 역할의 API이다.

 

생성하기.

1. src > main > java > com.filename에 controller 패키지를 만든다.

2. controller안에 ControllerClass.java 를 생성한다.

3. 아래 코드를 입력한다.

@RequiredArgsConstructor
@RestController
public class ControllerClass {

    private final CourseRepository courseRepository;

    @GetMapping("/api/courses")
    public List<Course> getCourses() {
        return courseRepository.findAll();
    }
}

@코드분석

@RestController:

Controller 클래스에 @RestController를 붙이면, 컨트롤러 클래스 하위 메서드에 @ResponseBody 어노테이션을 붙이지 않아도 문자열과 JSON 등을 전송할 수 있습니다.

 

@RequiredArgsConstructor:

이 어노테이션은 초기화 되지않은 필드나, @NunNull 이 붙은 필드에 대해 생성자를 생성해 준다.

주로 의존선 주입 편의성을 위해 사용된다고 한다.

 

private final CourseRepository courseRepository:

이 클래스를 사용할때 무조건 CourseRepository가 필요하다.

 

@GetMapping("api/courses"):

아래에 있는 메소드는 Get이다. Get을 불러오는 url을 api/courses로 약속한다.

'🍃웹개발 Spring' 카테고리의 다른 글

Lombok, @NoArgsConstructer, @AllArgsConstructer, @Setter @Getter, 생성자 ..란  (0) 2022.12.14
[String] Lombok이란  (0) 2022.09.27
[Spring] JPA심화 (CRUD)_2, SpringBoot 서비스 구조  (1) 2022.09.27
[Spring] JPA심화 (CRUD)_1  (0) 2022.09.27
[Spring] JPA 상속(extends)  (0) 2022.09.26
    '🍃웹개발 Spring' 카테고리의 다른 글
    • Lombok, @NoArgsConstructer, @AllArgsConstructer, @Setter @Getter, 생성자 ..란
    • [String] Lombok이란
    • [Spring] JPA심화 (CRUD)_2, SpringBoot 서비스 구조
    • [Spring] JPA심화 (CRUD)_1
    개발자는신이야
    개발자는신이야
    첫발을 내디딘 초보 개발자입니다.

    티스토리툴바