-
2023 - 06 - 28 REST APIToday I Learned/TIL 06 2023. 6. 29. 00:19
API : 어플리케이션을 연결해주는 매개체
API를 작성한다는 것은 웹 어플리케이션(프론트엔드)에서 원하는 기능을 수행하는 URL과 인터페이스를 제공한다는 의미
우리가 작성할 API에서 원하는 데이터를 받아 데이터베이스에 데이터를 저장하고, 저장된 데이터를 읽어서 웹 어플리케이션(프론트엔드)에 데이터를 제공하는 행위를 통해
사용자가 원하는 목적을 이룰 수 있게 해야한다
REST API (RESTful API) : Representational State Transfer의 줄임말
URL, Headers, Method등 네트워크 표현수단을 사람이 봐도 이해하기 쉬운 표현으로 정의하는 것
REST 아키텍쳐는 사람이 봐도 쉽게 이해할 수 있도록 "자원"을 정의하고, 이 "자원"을 중심으로 표현을 구성하는 원칙
REST API는 'REST 아키텍쳐' 규칙을 따르는 API이다.
client는 GET, POST, PUT, DELETE등을 통해 REST API로 호출하게 되고, REST API는 이를 Database에서 요청해서 가져온다.
REST API는 Database로부터 가져온 정보를 다시 client에게 JSON, XML 형식으로 보낸다.
ex)
GET /movies => Get list of movies
GET /movies/:id => find a movie by its ID
POST /movies => create a new movie
PUT /movies => Update an existing movie
DELETE /movies => Delete an existing movie
1. 자원 (Resource) = URL
우리가 만들 소프트웨어가 관리하는 모든 것을 자원으로 표현할 수 있다.
쇼핑몰이라면 상품(Goods)에 대해 정보를 관리할것이고, 또는 장바구니(Carts)에 담긴 상품들도 관리해야 한다
2. 행위(HTTP method)
HTTP 매서드는 GET, POST 등등이 있다, 이것으로 해당자원에 대한 행위표현가능
예를들어 GET매서드는 해당자원의 조회, POST매서드는 해당자원의 생성 등
Create 생성 (POST)
Read 조회 (GET)
Update 수정 (PUT), (PATCH)
Delete 삭제 (DELETE)
3. 표현 : 해당자원을 어떻게 표현할지에 대한 설명
보통 JSON, XML같은 형식을 이용해 표현한다
HTTP 개발자도구 - 네트워크 - headers 에서는 Content-Type 이라는 헤더를 사용해 표현방법을 서술한다
REST API 예시
Router.get('/books', (req, res) => {
res.json({success: true, data: getAllBooks()});
});
/books 라는 URL을 통해 책 전체 목록을 불러와 응답해주는 역할을 하는 API
REST API의 관점에서 보았을 때 URL로 리소스를 구분할수있고 다른 표현이 없으므로 전체 리스트를 불러오는 것으로 짐작할 수 있다.'Today I Learned > TIL 06' 카테고리의 다른 글
2023 - 06 - 29 데이터베이스 인덱스 (0) 2023.06.29 2023 - 06 - 27 이벤트 루프, 실행 컨텍스트, 호이스팅, 스코프체이닝, 프로세스, 싱글스레드, 논블로킹, 비동기, 동기 작업 (0) 2023.06.27 2023 - 06 - 26 SQL 관계형 데이터베이스 일대일 관계, 일대다 관계, 다대다 관계 (0) 2023.06.26 2023 - 06 - 25 Json Web Token, Map함수 (0) 2023.06.25 2023 - 06 - 24 시퀄라이즈 (Sequelize), ORM, RDBMS (0) 2023.06.24