코드스테이츠 7주차 / REST API

support·2021년 12월 6일
0
post-thumbnail

✏️ Achivement Goals

✅ REST API에 대해 이해할 수 있다.
✅ REST API 문서를 읽을 수 있다.
✅ REST API에 맞춰 디자인할 수 있다.

📝summary

REST API란? REST원칙을 지켜서 API를 만드는 것
REST - 웹 API 디자인 할때 사용하는 6가지 REST 원칙
API - 서버에게 요청해서 데이터 가져오는 방법

API

(Application Programming Interface)

서로 다른 프로그램간에 소통할 수 있게 도와주는 통신 규약을 말한다

이걸 웹에서 사용하면
'서버와 고객간의 통신 규약' 조금 더 쉽게 풀어말하면
서버에게 요청해서 데이터 가져오는 방법 이 API 이다
/user 이면 사용자 정보에 관한 정보 요청
/post 면 게시글에 관련된 자원을 요청

REST API

(Representational State Transfer)

웹 API 디자인 할때 사용하는 6개의 REST 원칙

1) Uniform Interface ( 제일 중요 )

인터페이스는 일관성이 있어야한다

  • 하나의 URL로 하나의 데이터를 가져와야함
    (하나를 가져오기 위한 두개의 URL을 만들면 안된다)
  • 간결하고 예측가능하게 짜야한다
  • URL 이름짓기 관습을 잘 따라야 한다

이름짓기 관습은 마지막에 첨부

2) Client-server 역할 구분

브라우저는 요청만, 서버는 응답만 해야한다

고객들은 그냥 URL 하나만 알면 서버에 있는 자료를 갖다쓸 수 있어야 한다
고객에게 서버역할을 맡기거나 DB에 있는 자료를 꺼내 사용하라는 식의 코드를 짜면 안된다

3) Stateless

요청들은 의존성 없이 각각 독립적으로 처리 되어야 한다

요청1이 성공해야 요청2를 보내주고 그런 식으로 요청간의 의존성이 존재하는 코드를 짜면 안된다
요청하나 만으로 자료를 가져오기 충분하도록
요청에 필요한 모든 정보들을 실어 보내는게 좋다

4) Cacheable

(브라우저가 잘 해주기 때문에 크게 신경 쓸 필요는 없다)

요청을 통해 보내는 자료들은 캐싱이 가능해야 하고
캐싱가능하다고 표시하거나 캐싱 기간을 설정해주어야 한다

  • 캐싱이란?
    네이버를 방문하면 크롬 브라우저는 자동으로 자주 사용하는 이미지 파일, CSS 파일 등을 하드에 저장해놓는다
    (자주 바뀔일 없는 네이버 로고나 아이콘 같은 파일)
    하드에 저장해놓고 네이버 방문할 때 네이버서버에 네이버 로고주세요~라고 요청하지 않고 하드에서 불러온다 이 행위를 캐싱이다

5) Layered System

요청처리하는곳, DB에 저장하는곳 이런 여러가지 단계를 거쳐서 요청을 처리해도 된다
다른말로 여러개의 레이어를 거쳐서 요청을 처리하게 만들어도 된다

6. Code on Demand

서버는 고객에게 실제 실행가능한 코드를 전송해줄 수도 있다

🤝 URL 이름짓기 관습

instagram.com/explore/tags/food
facebook.com/bbc/photos
한눈에 봐도 인스타의 푸드태그, BBC뉴스 페북계정의 사진첩인 걸 알 수 있도록 지어야한다

  • 단어들을 동사보다는 명사 위주로 구성
  • 응용해서 다른 정보들을 쉽게 가져올 수 있을 정도로 일관성 있도록 구성
  • url만 보고도 어떤 정보가 들어올지 예측이 가능하도록 구성
  • 띄어쓰기는 언더바_대신 대시-기호-사용
  • 자료 하나당 하나의 URL 사용
  • 파일 확장자 쓰지 말기 (.html)
  • 하위 문서들을 뜻할 땐 / 기호를 사용 (하위폴더같은 느낌)

0개의 댓글