JaPark Bug World

[SpringBoot] API와 REST API 본문

개발새발/스프링부트3 백엔드 개발자 되기

[SpringBoot] API와 REST API

JAstory 2024. 4. 11. 11:48

6.1 사전 지식 : API와 REST API

네트워크에서 API(Applicaton Programming Interface)는 프로그램 간에 상호작용하기 위한 매개체를 말한다. 클라이언트의 요청을 서버에 전달하고, 서버의 결과물을 클라이언트에게 전달한다.

 

웹의 장점을 최대한 활용하는 REST API

REST(Repressentational StateTransfer), 자원을 이름으로 구분해 자원의 상태를 주고 받는 API 방식이다. URL의 설계 방식을 말한다.

 

REST API의 특징

서버/클라이언트 구조, 무상태, 캐시 처리 가능, 계층화, 인터페이스 일관성과 같은 특징이 있다. 

 

REST API의 장점과단점

장점은 URL만 보고도 무슨 행동을 하는 API인지 명확하게 알 수 있다. 그리고 상태가 없다는 특징이 있어서 클라이언트와 서버의 역할이 명확하게 분리된다. HTTP 표준을 사용하는 모든 플랫폼에서 사용할 수 있다. 단점은 HTTP 메서드, 즉 GET, POST와 같은 방식의 개수에 제한이 있고, 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없다.

 

REST API를 사용하는 방법

규칙1. URL에는 동사를 쓰지 말고, 자원을 표시해야 한다. 

예문 적합성 설명
/articles/1 적합 동사없음, 1번 글을 가져온다는 의미가 명확, 적합
/articles/show/1
/show/articles/1
부적합 show라는 동사가 있음, 부적합

 

규칙2. 동사는 HTTP 메서드로

HTTP 메서드는 서버에 요청을 하는 방법을 나눈것으로, 주로 사용하는 메서드는 POST, GET, PUT, DELETE이다. 각각 만들고, 읽고, 업데이트하고, 삭제하는 역할을 담당. 이것들을 묶어서 CRUD라고 부른다. 

설명 적합한 HTTP 메서드와 URL
id가 1인 블로 그글을 조회하는 API GET /articles/1
블로그 글을 추가하는 API POST /articles
블로그 글을 수정하는 API PUT /articles/1
블로그 글을 삭제하는 API DELETE /articles/1

 


스프링부트3 백엔드 개발자 되기: 자바 편 책(저자 신선영)을 참고하여 정리한 내용입니다.