CS

REST API

hibscus 2021. 8. 27. 23:59

API Server

: 프로그래밍을 통한 요청에 응답(우리는 json)하는 서버를 제공

ex. Youtube Data AP API, TMDB API

 

 

REST(Representational State Transfer)

  • 웹 설계 상의 장점을 최대한 활용 할 수 있는 아키텍처 방법론

네트워크 아키텍쳐 원리의 모음

  1. 자원(데이터)을 정의
  2. 자원에 대한 주소를 지정하는 방법

REST 원리를 따르는 시스템 혹은 API - RESTful API

즉, 자원과 주소를 지정하는 방법

REST 구성

  1. 자원 URI
  2. 행위 HTTP Method
  3. 표현 Representaion

 

 

URI

  • 통합 자원 식별자
  • 자원을 나타내는 유일한 주소
  • 하위 개념 - URL, URN

URL

Uniform Resource Locator - 통합 자원 위치

네트워크 상에 자원이 어디에 있는지 알려주기 위한 약속

웹주소 혹은 링크라고 부름

URN

통합 자원 이름

유일한 이름

자원의 이름이 변하지 않는 한 이리저리 옮겨도 문제없이 동작

URL과 URN 상호보완적

URI 구조

path - 자원 경로

path 까지는 URL / path까지+ 나머지는 URI에 속함

일반적으로 URI과 URN으로 나누지만, URN을 사용하는 비중이 매우 적기에 일반적으로 URI를 URL로 통칭하기도 함.

URI 설계 주의사항

  • 밑줄 아닌 하이픈 을 사용
  • 소문자 사용
  • 파일 확장자는 포함 X

 

 

 

HTTP

html 문서와 같은 자원들을 가져올 수 있도록 해주는 프로토콜(규칙, 약속)

클라이언트 - 서버

요청 : 클라이언트에 의해 전송되는 메세지

응답 : 서버에서 응답으로 전송되는 메세지

  • 비연결지향 : 서버는 응답 후 접속을 끊음
  • 무상태 : 접속이 끊어지면 상태 저장 X,

ex. 그래서 쿠키와 세션 사용(로그인 상태 유지하기 위해)

HTTP Method

자원에 대한 행위

자원에 수행하길 원하는 행동 ex. GET, POST

행위를 규저하기 때문에 실제 그 행위 자체가 보장되지 않음

HTTP Method 종류

  • GET : 자원 표시 요청, 오직 데이터 받기만함
  • POST: 서버로 데이터를 전송, 서버에 변경사항을 만듬
  • PUT : 요청한 주소의 자원을 수정
  • DELETE : 지정한 자원을 삭제

 

 

 

 

표현 REPRESENTAION

JSON

  • JavaScript Object Notation

가벼운 데이터 교환 포맷

자바스크립트 객체 문법을 따르지만, 완전히 동일하지 않음 차이점 존재

구조화된 데이터를 표현하기 위한 문자기반의 데이터 포맷

JSON 특징

사람이 읽고 쓰기 쉽고, 기계가 파싱(해석&분석)하고 만들어 내기 쉬움

자료구조로 쉽게 변환할 수 있는 KEY- VALUE 형태

자바스크립 뿐만 아니라 JSON 다양한 프로그래밍 환경에서도 가능

REST 핵심 규칙

  1. URI 는 정보의 자원을 표현해야 한다
  2. 자원에 대한 행위는 HTTP Method 로 표현한다