REST API

🐶·2021년 7월 4일
0

개념 정리

목록 보기
18/41
post-custom-banner

API란?

일반 client는 어떠한 서버가 어떻게 구성되어 있는지 알 방법이 없다. 서버 코드를 직접 짠 사람도 아닌데, 어떻게 사용 가능한 자원을 파악할 수 있을까?

이에 대한 정답이 바로 API(Application Programming Interface)이다. 서버는 클라이언트에게 리소스를 잘 활용할 수 있도록 Interface를 제공해줘야 한다. 이것을 API라고 한다.(ex. 커피를 주문할 때 정확한 주문 방법(메뉴판)이 존재하는 것과 같음. 메뉴판 = API). Interface의 사전적 의미는 "의사소통이 가능"하도록 만들어진 "접점"을 의미한다. API는 앱이 요청할 수 있고 프로그래밍 가능한 인터페이스라는 점이 커피의 메뉴판과 다른점이다.

서버가 리소스 전달을 위한 메뉴판, 즉 API를 구축해놓아야 클라이언트가 이를 활용할 수 있다.

보통 인터넷에 있는 데이터를 요청할 때에는 HTTP라는 프로토콜을 사용하며, 주소(URL, URI)를 통해 접근할 수 있게 된다.

REST API란?


코드스테이츠의 HTTP/네트워크 파트에서 REST API 도입부분을 아래와 같이 설명하고 있다.

클라이언트와 서버의 통신을 담당하는 API는 어떻게 작성해야 할까요? 구글이나 MS 같은 대형 IT 기업은 API를 어떻게 작성하고 있을까요? 만약 혼자서 웹사이트를 만들고 관리한다면, API를 어떻게 설계하고 구현하든 상관이 없습니다. 그러나 일반적인 회사에서 진행하는 서비스 개발은 대부분 팀 단위로 진행합니다. 그렇기에 사소한 것 하나라도 규칙(rule)이 있어야 소통이 원활합니다.

CSR(Client Side Rendering)에서는 몇 가지의 메소드를 이용해 서버와 통신한다. GET을 통해 웹 페이지나 데이터를 요청하고, POST로 새로운 글이나 데이터를 전송하거나 DELETE로 저장된 글이나 데이터를 삭제할 수 있다.(--> Create, Read, Update, Delete (CRUD))

REST API는 웹에서 사용되는 모든 자원을 HTTP URI로 표현하고, HTTP Method를 통해 요청과 응답을 정의하는 방식을 말한다. REST API를 사용한다는 것은 REST 아키텍처의 제약 조건을 준수한다는 말이다.

REST의 가장 큰 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능하다는 점이다.

Restful 하다의 의미?

REST의 가장 큰 특성은 각 요청이 어떤 동작이나 정보를 위한 것인지를 그 요청의 모습 자체로 추론이 가능하다는 점이다.
그럴려면 메소드들을 목적에 따라 구분하여 적재적소에 사용해야 한다.

  • 다양한 HTTP 요청 메소드: 주로 GET(데이터를 조회함), POST(새로운 데이터 추가), PUT(데이터 변경), PATCH(데이터 변경), DELETE(데이터 삭제)를 사용한다. 더 많은 메소드는--> MDN링크

  • POST, PUT, PATCH: body라는 주머니가 있어서 정보를 GET, DELETE 보다 더 많이, 비교적 안전하게 감춰서 보낼 수 있다.

  • (알려진 정석은) PUT은 정보를 통째로 갈아끼울 때, PATCH는 정보 중 일부를 특정 방식으로 변경할 때 사용한다.

  • Restful 하기 위해서는... URI는 동사가 아닌 명사들로 이뤄져야 한다(POST만으로도 요청을 보내는게 가능하긴 하지만, 그것은 restful하지 않다.)

간단히 요약하자면, REST API란 HTTP요청을 보낼 때 어떤 URI에 어떤 메소드를 사용할 지 개발자들 사이에 널리 지켜지는 약속이다!
형식이기 때문에 기술에 구애받지 않는다.

profile
우당탕탕 개발일기📝🤖
post-custom-banner

0개의 댓글