REST API

DeadWhale·2022년 7월 3일
0

REST API

API ( Application Programming Interface )

한줄 요약 : 서로 다른 프로그램 간의 통신규약

이 API를 웹에 적용하면 서버와 고객간의 통신 규약 ==
서버에게 요청해 데이터를 가져오는 방법을 API라고 이해하면 될것같다.

내가 작성한
wrtie.html 을 보고 싶으면 /write라는 요청 주소로 접속하라는 의미가
내가 만들고 있는 서버의 API를 정의하고 있던 방식이다.


REST API란?

Representational - State - Transfer
표현 - 상태 - 이전

얼굴 크기가 좀 부담스러운데 로이 필딩 형님이신대 이 형님이 말하신
지켜야 할만한 규칙 6가지 이다.

1. Uniform Interface

restAPI 관련 검색 시 항상 최상단에 나오는 설명이다
인터페이스는 일관성이 있어야 한다는 소리

  • 하나의 URL로는 하나의 데이터를 가져와야 한다 (하나의 값을 위해 두개의 URL를 구성하지 말자)
  • 간결하고 예측가능한 URL를 작성하자
    (write?~) == 작성
    (update?~) == 수정 /갱신 같은 그낌으로
  • URL 이름짓기 관슴을 잘 따르자

URI / URL
URI : 자료를 넘버링하고 분류하고 지칭하는 방법
URL : URI를 포함한 더 큰 의미 상위의 걔념


2. Client - Server의 역할 구분

Client는 URL 하나만 알면 서버에 있는 값들을 가져와 사용할 수 있다
고객에게 서버의 역할을 맞기거나 고객에게 DB의 접근해 쿼리를 쓰게하는 등의 어이없는 행동을 하지 말라는 의미


3. Stateless

각각의 모든 요청들은 서로 독립적으로 처리되어야 한다.
요청1 이 수행 성공 시 요청 2를 보내주는 그런식의 URL간 의존성이 존재하면 안된다라는 의미
하나의 URL에 필요한 모든 값을 전달해 처리에 필요한 모든 데이터를 가져오자라는 의미? 인것 같다.


4. Cacheable

이건 뭐 캐싱 관리 어쩌구 하는 소리인데 요즘은 브라우저가 다 처리해준다고 들은것 같다 .
아무튼 요청을 통해 보내는 자료들은 캐싱이 가능해야 한다는 의미


5. Layered System

요청을 처리하기 위해 여러가지 단계를 거쳐도 된다라는 의미
이미 MVC 패턴으로 그렇게 하고 있는 것 같다.


6. Code on Demand

당연한 소리인데 서버는 고객에게 가치있는(실행되는) 코드만 전송해 주라는 의미 ㅋㅋㅋ너무 당연해서 할 말이 따로 없다.






URL 관습

Meta의 작명 규칙

url만 보고도 어떠한 기능인지 알아볼 수 있게 명명한 것

instagram.com/explore/tags/kpop
instagram.com/explore/tags/food
facebook.com/natgeo/photos
facebook.com/bbc/photos

코드애플님의 강의에서 정리해둔 걸 잘 적어두면 좋을거같다

명명 규칙

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

해당 게시글은 codingapple님의 강의에 도움을 받았습니다.

0개의 댓글