본문 바로가기
Server Developer/Node.js

[Node.js] 인스타그램 클론코딩 (Restful API)

by 성 언 2022. 12. 31.

UMC 3기 Node.js 과정과 컴공선배 서버 클론코딩 학습 후 정리한 포스팅입니다.

이번 포스팅에서는 Restful API에 대해 학습합니다.

 

I) REST (Representational State Transfer)

- REST 란?

  • 리소스를 이름으로 구분하여 상태를 주고받는 것을 의미한다.
  • 클라이언트가 서버에게 요청하는 시점의 상태를 XML, JSON, CSV를 통해 주고 받는다.
    • XML
      • XML이 가지는 고유한 문법이 있다는 점에서 소프트웨어 및 하드웨어에 대하여 독립적으로 데이터를 처리할 수 있다.
      • 다목적 마크업 언어로 태그 등을 이용하여 데이터의 구조를 기술하는 언어이다.
      • XML은 데이터를 표현하기 위하여 많이 사용되어 온 방식으로 HTML과 흡사한 구조를 가지고 있다.
    • JSON
      • JSON 형식은 XML과 비슷하게 데이터를 처리하기 위한 형식으로, '속성- 값 쌍' 또는'키 -값 쌍'으로 이루어진 데이터 오브젝트를 전달하기 위한 인간이 읽을 수 있는 텍스트를 사용하는 개방형 포준 포맷이다.
      • 서버 통신을 위해 넓게는 XML을 대체하는 주요 데이터 포맷이다.
    • CSV
      • DB나 표 계산 소프트웨어 데이터를 보존하기 위해 사용한다.
      • 각 항목이나 판매 내용마다 쉼표(comma)로 구분하여 기록한다.
      • CSV 형식은 쉼표를 기준으로 항목을 구분하여 저장한 데이터를 말한다.
  • HTTP URI 를 통해 리소스를 명시하고, HTTP 메소드를 통해 해당 리소스에 대해 CRUD를 적용한다.

 

- HTTP 메소드의 용도

메서드명 역할
GET URL에 표시된 리소스 가져오기 (서버로 정보를 조회)
POST Body에 정보를 담아 서버에게 요청을 보내기 (리소스를 생성/변경)
PUT URL에 표시된 리소스와 바꾸기 (대체, 모든 것을 update)
PATCH PUT과 다르게 일부만 수정 (부분 수정, 일부를 update)
DELETE URL에 표시된 특정 리소스를 제거

PUT과 PATCH 차이 : PUT (모든 것을 update), PATCH (일부를 update)

 

 

II) API (Application Programming Interface)

 

API는 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스

 

- API 명세서

API의 이름, 파라미터, 반환 값 등의 구문, 인증 및 인가 방법, 데이터 전달 형식 등 API를 정확하게 호출하고 그 결과를 명확히 해석하는데 필요한 정보들을 일관된 형식으로 기술한 것을 말한다.

 

 

 

 

 

III) Restful API

- Restful API 란?

🍀 REST 기반으로 서비스 구현한 API

 

- Restful API 규칙

1. 메소드: 동사, URI: 명사

ex) 회원가입       메소드: POST      URI: users -> post 행위의 주체, 복수형을 사용한다ex) ID 조회      메소드: GET     URI: 특정 user를 조회하기 위해 Path Variable을 사용한다.              (100번 유저 조회 시 :users/100, 클라이언트에게 전달 시: users/:userIDX)

 

2. 명사와 명사의 구분자는 -로 표기한다. 

 

3. GET와 DELETE에는 body를 쓰지 않는다. 

 

4. HTTP 메소드는 실제 DB에서 동작하는 기준으로 사용한다.

 

 

-> 리소스에 대한 행위는 HTTP 메소드로 표현한다.

-> URI는 리소스의 정보를 소문자 명사로 표시 한다.

  • document (단수), collection (복수), store(복수)

 

 

 

 

 

IV) Path Variable 과 Query Parameter

 

- Path Variable

   경로를 변수로 사용하는 것 for 특정 인덱스에 대한 조회

/post/6

- Query Parameter

   경로 뒤에 입력 데이터를 함께 제공하는 것 for 특정 값으로 필터링

 

/post?post_id=6

 

- Path Variable 과 Query Parameter 사용 상황

리소스의 위치를 특정해서 보여줘야 할 경우 Path variable을 쓰고, 정렬하거나 필터해서 보여줘야 할 경우에 Query parameter를 쓴다.

/users # a list of users 호출

/users?occupation=programer # a list of programer user 호출

/users/123 # a user who has id 123 호출

 

ex) 아이디가 12214376번인 유저 조회  ->  Path Variable 사용 -> GET  /users/12214376

이름이 eon이고 23살인 유저 조회  -> Query String 사용  ->  GET /users?userName=eon&?UserAge=23

 

<Summary>

- REST

- API

- Restful API

- Path Variable, Query Parameter

 

*유의사항

- Node.js 공부 중인 인공지능공학과 학부생이 남긴 정리입니다.

- 정확하지 않거나, 틀린 점이 있다면 댓글로 알려주시면 감사하겠습니다.

 

 

 

 

댓글