ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • API와 REST API의 개념
    Node.js 입문주차 2023. 11. 1. 20:40

     

    API란 애플리케이션끼리 연결해주는 매개체이자 약속

     

    나와 내친구가 윙크시 내기분이 나쁘다는 약속을 하고 내가 친구에게 윙크를하면 친구는 아 쟤가 기분이 나쁘구나 어쩌라는거지 싸우자는건가? 이런 과정과 약속을 API라고 한다. 

     

    즉 우리는 데이터를 받아 저장하고 읽어서 웹에 보여서 제공할 때 그 데이터가 발동해서 기능을 수행하고 URL과 인터페이스를 제공하는것을 약속이라 하고 우리는 그걸 API라고 할 수 있지

     

     

    그렇다면 REST API란?

     

    REST란 Representational State Transfer로서 월드 와이드 웹과 같은 하이퍼 미디어 시스템을 위한 소프트웨어 아키텍처 블라블라.....

     

    쉽게 URL과 HEADER METHOD같이 우리가 전달하려는 것들을 한눈에 보기 편안하게(REST) 정의하고 약속하는것을 REST API라고 한다.

     

    크게 3가지로 구성된다.

     

    자원 - 행위 - 표현으로 구성된다. 

     

    자원이란 장바구니에 담긴 상품들과 상품에 담긴 정보를 자원이라고 하고 URL도 자원이며

     

    행위란 자원에 대한 행위를 표현하는것으로 상품의 정보를 가져오거나 보내거나 붙이는 행위로 우리는 HTTP METHOD가 대표적이다. 

     

    이 행위의 객체로는

     

    Create : 생성(POST)
    Read : 조회(GET)
    Update : 수정(PUT),(PATCH)
    Delete : 삭제(DELETE)

     

    CRUD라고 한다. 

     

    표현이란 말그대로 자원을 어떻게 표현하냐는 의미이며 주로 JSON과 XML을 쓴다. (비유가 생각안나는것은 비밀...)

     

    EX)

    router.get('/books', (req, res) => {
        res.json({ success: true, data: getAllBooks() });
    });

     

     

    같이 GET이라는 행위로 Book이라는 자원의 데이터를 allbooks에 넣는것을 json으로 표현한것으로 

     

    /books라는 주소에 req,res가 일치하면 getallbooks에 포함시키는 로직이지 

     

     

     

     

     

     

    API의 좋은 예시 (백번보고 해석하고 2번만 따라 써보자)

     

    // /routes/goods.js
    const express = require("express");

    const router = express.Router();

    const goods = [
      {
        goodsId: 4,
        name: "상품 4",
        thumbnailUrl:
        category: "drink",
        price: 0.1,
      },
      {
        goodsId: 3,
        name: "상품 3",
        thumbnailUrl:
        category: "drink",
        price: 2.2,
      },
      {
        goodsId: 2,
        name: "상품 2",
        thumbnailUrl:
        category: "drink",
        price: 0.11,
      },
      {
        goodsId: 1,
        name: "상품 1",
        thumbnailUrl:
        category: "drink",
        price: 6.2,
      },
    ];

    //상품 목록 조회 API
    router.get("/goods", (req, res) => {
        res.json({ goods: goods });
    });

     

     

    이런식으로 자원을 잘가공해서 json으로 표현하는 로직으로 우리는 이것을 받아올 때 여러 조건을 걸어 원하는 정보를 빼오는데 

    우리는 위와같은 것을 api라고 한다. 

    'Node.js 입문주차' 카테고리의 다른 글

    Request와 Response (RES, Req)  (0) 2023.11.01
    ROUTER, MODULE,  (0) 2023.11.01
    package manager  (0) 2023.10.31
    HTTP/ WEB SERVER  (0) 2023.10.31
    Class(클라쓰)  (2) 2023.10.31
Designed by Tistory.