본문 바로가기

node js

서버만들 때는 REST하게 API를 짜는게 좋다!(RESTful API)

1. 먼저 API란?

API란, Application rogramming Interface, 인터넷과 통신할 때 통신 규약... 이건 알필요 없고!!

웹개발에서 API란, 서버와 클라이언트간의 소통방법 == 어떻게 해야 서버와 통신할 수 있을까? 이거만 알면된다.

app.get("/write", function (req, res) {
  res.sendFile(__dirname + "/write.html");
});

어떤 사람이 /write로 접속했을 때 글 쓸 수 있는 페이지를 갖다준다 => 이게 바로 API

이걸 REST하게 짜면 보기도 좋고 관리도 좋은 API를 만들 수 있다.

2. 그렇다면 REST는?

HTTP 요청 시스템(GET, POST, PUT, DELETE) REST원칙에 의해서 쓰면 인터넷 세상이 평화로워짐 ㅎㅎ 이 원칙이 뭐냐면,

1. Uniform interface

간결하고 일관적으로 작성해라.

  • 하나의 자료는 하나의 URL로
  • URL 하나를 알면 둘을 알 수 있어야 함
  • 요청과 응답은 정보가 충분히 들어있어야 함

2. Client-Server 역할구분

두 관계를 명확히 해라.

  • 브라우저는 요청만 할 뿐
  • 서버는 응답만 할 뿐

3. Stateless

고객이 요청할 때, 요청1과 요청2는 의존성이 없어야 함. 독립적이어야 함.

(여기서부턴 별로 안중요)

  1. Cachealble
  • 서버에서 보내주는 정보들은 캐싱이 가능해야 함
  • 캐싱을 위한 버전 같은 것도 관리 잘해야 함(실은 브라우저가 잘해줌)
  1. Layered Style
  2. Code on Demand

1번만 잘지켜도 좋은 API만들 수 있다.

좋은 REST API 예시

www.example.com/products/66432
instagram.com/explore/tags/kpop
facebook.com/natgeo/photos/

url을 보고 예측이 가능함

이름짓기 원칙:

  • 명사로 작성추천 (동사를 쓰면 안되는건 아님, 동사는 되도록 get/put/update/put)로 해결)
  • 하위문서를 나타낼 땐 /
  • 파일확장자(.html) 쓰지말기
  • 띄어쓰기는 대시(-)이용
  • 자료 하나당 하나의 URL (나머지는 쉬워서 생략)