dh_0e

[Node.js] 강의 내용 개념 정리(5) (API, REST API, Routing, API Client) 본문

내일배움캠프/Node.js[입문]

[Node.js] 강의 내용 개념 정리(5) (API, REST API, Routing, API Client)

dh_0e 2024. 5. 15. 21:41

API (Application Programming Interface)

- 서로 다른 소프트웨어나 어플리케이션 간을 연결해주는 매개체이자 약속

- 정해진 규칙(request, response 형식)에 따라 서버에 정보를 요청하는 역할을 담당

- 서로 다른 시스템 간의 통신을 할 수 있게 해주는 중개자의 역할

 

API를 작성한다: 프론트엔드에서 원하는 기능을 수행하는 URL과 인터페이스를 제공한다.

- 우리가 작성할 API에서 원하는 데이터를 받아 데이터베이스에 데이터를 저장하고, 저장되어 있는 데이터를 읽어서 웹 어플리케이션(프론트엔드)에 데이터를 제공하는 행위를 통해 사용자가 원하는 목적을 이룰 수 있게 해야함

 

REST API

- "Representational State Transfer"의 줄임말

- URL, Headers, Method 등 네트워크 표현 수단을 사람이 봐도 이해하기 쉬운 표현으로 정의

- HTTP를 통해 웹 서비스의 자원에 접근하는 방식을 "REST 아키텍쳐"의 규칙을 따라 구현된 API

- REST 아키텍쳐: 리소스를 사람이 알기 쉽게 정의하고 이를 중심으로 표현을 구성하는 원칙을 제시

 

REST API의 구성 요소

1. 자원(Resource) - URL

- 우리가 만들 소프트웨어가 관리하는 모든 것을 자원(Resource)으로 표현할 수 있음. ex) /goods, /carts

2. 행위 - HTTP method

- GET, POST 등의 HTTP method를 사용하여 해당 자원에 대한 행위를 표현

ex) CRUD

Create: 생성(POST)

Read: 조회(GET)

Update: 수정(PUT), (PATCH)

Delete: 삭제(DELETE)

- 필수적은 아님

3. 표현

- 해당 자원을 어떻게 표현할지에 대한 방법. 

- 보통 JSON, XML같은 형식을 이용해서 자원을 표현함

- HTTP에서는 Content-Type이라는 헤더를 통해 표현 방법을 서술

RESTful API

by ChatGPT

 

 

Routing

- 클라이언트의 요청 조건(HTTP 메서드, URL 등)에 대응해 응답(Response)하는 방식

 

Router: 클라이언트의 요청을 쉽게 처리할 수 있게 도와주는 Express.js의 기본 기능중 하나

- router.METHOD(PAHT, HANDLER); 의 구조

 

구성 요소

router: Express.js의 라우터를 정의하기 위해 사용

METHOD: HTTP Method를 나타냄 ex) get, post, put, patch, delete ...

PATH: 실제 서버에서 API를 사용하기 위한 경로 ex) /users, /carts ...

HANDLER: 라우트가 일치할 때 실행되는 함수

 

API Client

- 개발단계에서 작성한 API의 요청을 확인하거나 테스팅할 때 도움을 주는 툴

- 이를 사용함으로서 개발 속도를 높이거나 잘못된 API 요청으로 인한 치명적인 에러를 예방할 수 있음

- 대표적으로 Postman, Insomnia가 있으며 API 요청을 손쉽게 구성하고 응답을 직관적으로 확인할 수 있음.

대표적인 API Client 중 하나인 Insomnia