백엔드/Spring Boot

6. 블로그 기획하고 API 만들기 (1) - API와 REST API

두개의 문 2023. 7. 24. 23:32

1. 사전 지식 : API와 REST API

1) 식당으로 알아보는 API

 

▪︎ API ( Application Programming Interface, 응용 프로그램 프로그래밍 인터페이스 )

  - 클라이언트의 요청을 서버에 전달하고, 서버의 결과물을 클라이언트에게 전달해주는 역할 

     즉, 프로그램 간에 상호작용하기 위한 매개체를 의미 

  - 식당의 점원 역할 : 손님이 점원에게 주문을 하면, 점원이 주방에 가서 주문을 전달 

                                 요리가 완성되면 다시 점원이 손님에게 요리 전달

 

 

 

 

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

 

▪︎ REST API ( Representational State Transfer )

  - 자원을 이름으로 구분해 자원의 상태를 주고 받는 API 방식 

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

  - 명확하고 이해하기 쉬운 API → URL의 설계 방식 

 

 

◉ REST API의 특징 

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

    → 지금 당장 이해할 필요는 없고, 추후 웹 공부할 때 자세히 찾아보자 

 

 

◉ REST API의 장점 

  - URL만 보고도 무슨 행동을 하는 API인지 명확히 알 수 있음 

  - 상태가 없다는 특징이 있어서 클라이언트와 서버의 역할이 명확하게 분리됨 

  - HTTP 표준을 사용하는 모든 플랫폼에서 사용 가능 

 

 

◉ REST API의 단점 

  - HTTP 메서드 즉, GET, POST와 같은 방식의 개수 제한 

  - 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없음 

 

 

∴ 이러한 단점에도 불구하고 주소와 메서드만 보고 요청의 내용을 파악할 수 있다는 강력한 장점으로 인해 많은 개발자들이 사용함 

 

 

 

◉ REST API를 사용하는 방법 

 

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

 - 자원이란? 가져오는 데이터를 의미 

 - ( 예시 ) 학생 중 id가 1인 학생의 정보를 가져오는 URL 설계 

    ❶ /student/1 

    ❷ /get・student?student_id=1

   • REST API 즉, RESTful API는 ❶

      ❷의 경우, 자원이 아닌 다른 표현을 섞어 사용했기 때문 → 동사를 사용해서 추후 개발 시에 혼란을 줄 수 있음 

  

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

  - HTTP 메서드 : 서버에 요청을 하는 방법

                             POST, GET, PUT, DELETE

                             → 각각 만들고(create), 읽고(read), 업데이트하고(update), 삭제(delete)하는 역할 담당 ⇒ CRUD(크루드)

  - 블로그에 글을 쓰는 설계 

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

 

 


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

→ 자원을 이름으로 구분해 자원의 상태를 주고받는 방식으로 URL 설계 방식을 의미