HTTP 와 RESTful API?

2104 단어 REST APIhttpREST API

HTTP

HTTP는 HTML 문서와 같은 리소스들을 가져올 수 있도록 해주는 통신 프로토콜
프로토콜은 간단히 말해서 데이터 교환 방식을 약속한 규칙

브라우저에서 이루어지는 모든 데이터 교환의 기초임.

이러한 규칙으로 우리는 여러 파일,이미지, 비디오 스크립트파일도 가져옴.

동작 어케함?

클라이언트가 서버에 요청
서버가 클라이언트에 응답

HTTP의 특징

  1. 할 것하고 바로 연결 끊음.
  2. 그래서 상태란게 없음

연결 상태를 유지하지못해서 이런거 저장하려고 쿠키하고 쎄션 생김.

REST

REST(REpresentational State Transfer)임.
자원을 표현하는 트랜스퍼라고함.

웹에 존재하는 모든 자원을 정의하고 자원에 대한 주소를 지정하는 방법을 말함.

제약들
4번을 제외한 1~5 HTTP
6 optional, JavaScript

  1. Client - Server
    서버는 API를 제공하고 클라이언트는 API로 할거하는 역할 나누기
  2. Stateless
    클라이언트가 누군지 서버는 기억안해도 됨.
  3. Cacheable
    특정정보들을 미리 서버에 저장할 수 있도록 해야함.
  4. Uniform Interface
    동일한 인터페이스로 되어있어 쉽게 알 수있도록 분리되야함.
  5. Layered System
    서버가 어떤방식으로 일을 하는지 클라이언트는 몰라도 된다는 소리.
  6. Code on Demand
    자바스크립트같은 코드를 내려줄 수 있다는 소리.

구성요소

  1. 리쏘쓰 (이런거 http://domain/**iSangHanGo**)
  2. 메쏘드 (HTTP method)
  3. 메쎼지 요런..거.?
    {"id":3,"name":"Contoso LLC","dateCreated":"2014-09-04T12:11:38.0376089Z","address":"1 Microsoft Way Redmond WA 98053"}

솔직히 정의 잘 모르겠음.

RESTful API

HTTP 메소드를 이용해서 REST라는 제약, 정의를 통해 클라이언트가 쓰게될 API를 어떻게 만드는가에 대한 정의임. URI를 잘 설계했는가 그런거.

GET일 때 POST일 때 등 /users 라는 주소로 유저들의 정보 요청 막 이런거 정의하는거임
리소스명에 명사를 사용하고 HTTP METHOD로 어떤 행위를 하는지 표현함.
GET /users/1

https://adventure-works.com/orders // Good

https://adventure-works.com/create-order // Avoid

Rest API 공식 문서 : https://docs.microsoft.com/ko-kr/azure/architecture/best-practices/api-design

좋은 웹페이지 즐겨찾기