Web API ( feat. REST API )

taehyung·2024년 5월 15일
0

JavaScript

목록 보기
11/15

API란?

application programming interface 의 약자로 애플리케이션끼리 서로 통신할 수 있도록 하는 인터페이스를 말한다. 간단히 말해, 소프트웨어의 여러 부분이나 시스템 간에 정보를 교환하거나 서비스를 요청하고 응답하는 데 사용되는 규칙이다.


Web API란?

Web API란 클라이언트 API와 서버 API로 나누어져있다.

클라이언트 API

브라우저에서 제공하는 API 로 웹 브라우저에 내장되어 있으며, 브라우저 및 주변 컴퓨터 환경에서 데이터를 제공하거나 복잡한 작업을 수행 할 수 있다. 예를 들어, XMLHttpRequest API 는 브라우저에서 HTTP 통신을 위한 Javascript 구성을 제공합니다.

MDN Web API : https://developer.mozilla.org/ko/docs/Web/API

서버 API

서버와 클라이언트의 HTTP 통신을 위하여 서버에서 측에서 제공하는 API 서비스로 예를 들어 다음 주소로 HTTP 요청을 보내면 해당 도메인의 서버 API 가 요청에 대한 응답을 해준다. https://jsonplaceholder.typicode.com/todos/1

TV와 리모콘을 생각해보자.

리모콘의 버튼을 누르면 TV는 누른 버튼에 해당하는 일을 처리한다. 리모콘은 TV에서 제공하는 API인 것이다. 우리는 서버가 제공한 API를 따라 요청하고, 그에 해당하는 응답을 받는것으로 서버 API를 이용할 수 있다.


REST API가 뭐죠?

REST( Representational State Transfer )

웹 서비스를 구축하기 위한 아키텍처 스타일 중 하나로, HTTP를 기반으로 클라이언트가 서버의 리소스에 접근하는 방식을 규정하고, 분산 시스템에서 자원을 표현하고 상호작용하는 방법을 정의합니다.

API( Application Programming Interface )

애플리케이션끼리 상호작용 할 수 있도록 하는 인터페이스를 말한다. 간단히 말해, 소프트웨어의 여러 부분이나 시스템 간에 정보를 교환하거나 서비스를 요청하고 응답하는 데 사용되는 규칙이다.

REST API란 REST 아키텍처를 기반으로 서비스 API를 구현한 것을 의미한다.

REST 아키텍처의 원칙을 성실히 지킨 서비스 API를 RESTful API라고 한다.


REST 아키텍처가 뭐죠?

클라이언트/서버 구조에서 클라이언트와 서버 간의 통신을 설계하는 데 사용되는 기본적인 원칙을 정의해놓은 것으로, 자원(resource), 행위(verb), 표현(representations)의 3가지 요소로 구성되어있다.

구성요소내용표현 방법
자원 (Resource)자원URI ( 엔드 포인트 )
행위자원에 대한 행위HTTP 요청 메서드
표현자원에 대한 행위의 구체적 내용페이로드

REST API 설계 원칙

REST 아키텍처에서 가장 중요한 두 가지 원칙은 바로 URI는 리소스를 표현하는데 집중하고, 행위는 HTTP 요청 메서드를 통해 정의하는 것이다.

자원의 표현

REST 아키텍처에서 자원은 URI로 표현한다.

//good
/todos/id
/user/id

//bad
/getTodos/getId
/getUser/getId

자원에 대한 행위 표현

REST 아키텍처에서 자원에 대한 행위를 표현할 때에는 HTTP 요청 메서드를 사용하여 CRUD를 구현한다

HTTP 메서드종류목적페이로드
GETindex/retrieve모든/특정 리소스 조회X
POSTcreate리소스 생성O
PUTreplace리소스 전체 교체O
PATCHmodify리소스 일부 수정O
DELETEdelete모든/특정 리소스 삭제X
//good
GET /user/id
POST /user/id
DELETE /user/id
PATCH /user/id

//bad
GET /getUser/getId
POST /postUser/postId
DELETE /deleteUser/deleteId
PATCH /updateUser/updateId

이제 우리는 프론트엔드 개발을 할 때 REST 한 URI 구조를 생각하고, REST 한 HTTP 요청을 보낼 수 있게 되었습니다. 👏🏻👏🏻👏🏻

profile
Front End

0개의 댓글