프로그램들이 소통할 수 있는 인터페이스
Ex)
음식점에서 손님 : 클라이언트(요청을 하는 역할)
메뉴 : API
손님이 메뉴를 확인 후 주문
→ 웨이터가 주문 내용을 요리사에게 전달
→ 요리사가 음식을 조리
※ API는 실체가 없다
웨이터 : API server(중간다리 역할)
주방 : service server(요청을 처리해줌)
API응답의 형태 : JSON(Javascript Object Notation)
파이썬의 사전형태와 비슷
컴퓨터들의 통신 규약 중 하나
정해진 규칙들을 하나의 규약(protocol)이라고 부른다
요청(HTTP Request)과 응답(HTTP Response)으로 나뉘어져 있다
HTTp Request
보통 한 커퓨터가 다른 컴퓨터에 리소스 요청을 보낼 때 사용되는 말
요청하는 컴퓨터 : 클라이언트 / 요청을 받는 컴퓨터 : 서버
CRUD에 사용되는 HTTP 메소드
GET : 특정 리소스를 달라고 할 때에 사용
(예시: 페이지 로딩할 때)
POST : 서버 측의 특정 리소스를 저장할 때 사용
(예시: 회원가입을 할 때에 특정 유저의 정보를 서버에 저장)
PUT/PATCH : 서버 측의 특정 리소스를 업데이트 할 때 사용 PUT 은 데이터 전부를 바꿀 때, PATCH 는 부분적으로 변경할 때 사용
(예시: 사용자 닉넴임 변경)
DELETE : 서버 측의 특정 리소스를 삭제할 때 사용
(예시: 유저 탈퇴)
HTTP Response(상태코드) 5개 종류
100 번대 : 정보 응답
200 번대 : 성공 응답
300 번대 : 리다이렉션 메시지
400 번대 : 클라이언트 에러 응답
500 번대 : 서버 에러 응답
웹은 REST를 적용할 수 있는 시스템이기 때문에 웹에서 활용하게 되는 Api가 REST의 가이드라인들을 다 따르면 해당 API를 RESTful API로 부를 수 있다
REST 아키텍쳐는 HTTP를 사용할 때 특정 가이드라인들을 제시
REST를 활용한닥 하면 HTTP의 특정 방식들을 사용해야 하는 것이 아니다. REST는 아키텍쳐 형식이라 HTTP를 직접적으로 간섭하지 않기 때문