API Client란 뭘까?
API Client란 개발단계에서 우리가 작성한 API의 요청을 확인하거나 테스팅 할 떄 도움을 주는 툴입니다. API Client를 사용함으로 개발 속도를 높이거나 치명적인 에러를 예방하는데 도움을 받을 수 있습니다.
Postman, Insomnia등 여러 API Client가 있지만 이번에는 Thunder Client를 사용합니다.
어떤 상황에 필요할까?
POST, PATCH, PUT, DELETE, HEAD등의 다양한 Method에 대한 API를 개발하고 테스트하기 위해서는 반드시 필요한 도구라 볼수있습니다.
Routing이란?
Routing은 클라이언트의 요청 조건(메서드, 주소 등)에 대응해 응답하는 방식을 말합니다.
Router란?
여기서 말하는 Router는 클라이언트의 요청을 쉽게 처리 할 수 있게 도와주는 Express.js기본 기능중 하나입니다.
router.METHOD(PATH, HANDLER);
export 명렬어를 변수나 함수 앞에 붙이면 외부 모듈에서 해당 변수나 함수에 접근할 수 있습니다.
import, require 명령어를 사용하면 외부 모듈의 기능을 가져올 수 있습니다.
API(Application Programming Interface)란?
-API는 애플리케이션끼리 연결해주는 매개체이자 약속이라고 볼 수 있습니다.
API를 작성한다는 의미
REST API는 어떤 의미를 갖는 API인가?
- REST는 "Representational State Transfer"의 줄임 말로, 월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한 소프트웨어 아키텍처의 한 형식이다.
- 최대한 간단하게 설명하자면 URL, Headers, Method 등 네트워크 표현 수단을 사람이 봐도 이해하기 쉬운 표현으로 정의한다고 이해하면됩니다.
또한 이 "REST 아키텍쳐"는 사람이 봐도 쉽게 이해할 수 있도록 "자원"을 정의하고 이 "자원"을 중심으로 표현을 구성하는 원칙을 제시합니다.
![](https://velog.velcdn.com/images/dudtjdwn1575/post/8f6391d9-c68b-4d78-82eb-1b1e3c13965d/image.png)
- REST API는 "REST 아키텍쳐"라는 규칙을 따르는 API라고 생각하면 됩니다.
- REST API의 구성은 크게 세가지로 이루어 집니다.![](https://velog.velcdn.com/images/dudtjdwn1575/post/412fc391-f188-46b0-a857-3eaf7c374573/image.png)
1) 자원(Resource) - URL
- 우리가 만들 소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있습니다. 쇼핑몰이라면 상품(Goods)에 대해서 정보를 관리할것이고 또는 장바구니(Carts)에 담긴 상품들도 관리해야겠죠.
2) 행위 - HTTP method
- HTTP method 이것으로 해당 자원에 대한 행위를 표현할 수 있습니다. 예를 들어 GET 메소드는 해당 자원의 조회, POST 메소드는 해당 자원의 생성 이런 식입니다.
- 이렇게 나누어진 것을 보통 CRUD라고 합니다. 자원에 대한 생성/조회/수정/삭제를 각각의 method로 나누어 놓은것입니다.
Create : 생성(POST)
Read : 조회(GET)
Update : 수정(PUT),(PATCH)
Delete : 삭제(DELETE)
- 위 이미지의 예씨처럼 쓰이는 것이 일반적인 method 사용방식입니다. 하지만 이것은 필수인 부분이 아니고 모든 곳에서 다 이렇게 지켜서 사용하지는 않습니다. 상황에 따라 저것을 완벽하게 지키는 어려운 부분들도 있으니 이 부분 참고 해주세요.
3) 표현
- 해당 자원을 어떻게 표현할지에 대한 설명입니다. 보통 JSON, XML 같은 형식을 이용해서 자원을 표현합니다.