RESTful HTTP API 구조 및 핵심 개념

lilyoh·2020년 8월 5일
0

HTTP

목록 보기
1/2

💪 HTTP 를 공부한 후에 대답할 수 있어야 하는 질문들

  1. HTTP란?
  2. Request? Response?
  3. headers와 body의 역할?
  4. Method란?
  5. Status-code 들은 무엇이 있을까요?
  6. RESTful HTTP API는 무엇일까요?
  7. 올바른 end-point 주소는 어떻게 작성할까요?

1. 기본 배경 지식

  • URI
    • Uniform Resource Identifier
    • 해당 사이트의 특정 자원의 위치를 나타내는 유일한 주소
    • /login, /news
    • http://finance.naver.com/marketindex
  • HTTP Method
    • HTTP request 가 의도하는 action 을 정의한 것
    • POST, GET 등등
  • Payload
    • HTTP request 에서 보내는 데이터 (body)

2. REpresentational State Transfer

  • 웹상에서 사용되는 여러 리소스를 HTTP URL 로 표현하고 그 리소스에 대한 행위를 HTTP Method 로 정의하는 방식

    • 즉 (HTTP URI 로 정의된) 리소스를 어떻게 한다(HTTP Method + Payload) 를 구조적으로 깔끔하게 표현하는 것
    • Method 는 주로 GETPOST 만 사용한다.
    • PUTDelete 등도 사용하는 곳도 있지만 그냥 GETPOST 만 사용하는 것이 단순하기 때문에 GETPOST 만 사용하는 추세
  • 예를 들어 삼성전자 주식 정보를 받기 위한 HTTP 요청:

    HTTP GET https://api.trueshort.com/stock/005930

  • 유저의 보유 주식 종목들을 DB 에 저장하는 HTTP 요청:

    HTTP POST https://api.trueshort.com/user/portfolio

    {
    "user_id" : 1,
    "stocks": [
    "005930",
    "298730",
    "378900"
    ]
    }

3. RESTful API 의 장점

  • 여러 장점들이 있지만 사실 그 중 가장 명확한 장점은 바로 self- descriptiveness 이다.
  • RESTful API 는 그 자체만으로도 API 의 목적이 쉽게 이해가 된다.
    • 예를 들어 위의 HTTP GET https://api.trueshort.com/stock/005930 요청의 경우, 문서나 주석이 없어도 https://api.trueshort.com 라는 API 에서 삼성전자 주식에 관한 정보를 HTTP 요청을 통해 받아오는 구나 라는 해석이 가능하다.

4. RESTful API 를 개발할 때 유의할 점

  • / 는 계층 관계를 나타낼 때 사용된다.
    • 예를 들어 https://api.trueshort.com/kospi/stock/005930 라는 구조라면 KOSPI 에 속해있는 주식(stock) 중 삼성전자(005930)를 나타내는 것이다.
    • https://api.shopping.com/books/novel/stephenking 이라는 구조라면 책들 중 소설 그리고 소설 중 Stephen King 의 소설을 나타내는 구조이다.
  • URI 에 _ 는 주로 포함하지 않고, 영어 대문자보다 소문자를 쓴다. 너무 긴 단어는 사용하지 않는다. 가독성을 높이기 위해서이다.
  • URI 는 명사를 사용한다.
    • /books/novel/stephenking 이라고 하지 /books/novel/get-stephenking 이라고 하지 않는다.
    • 그 이유는 동사는 GET, POST 같은 HTTP Method 를 통해 표현하기 때문이다.

0개의 댓글