아래 API의 의미는 무엇일까?
GET /sports/soccer
-> 스포츠 그룹안의 축구종목을 가져와라
DELETE /sports/soccer/players/11
-> 스포츠 그룹안의 축구 선수중 11번선수를 지워라
즉 REST API 메시지를 읽는것 만으로도 메세지가 의도하는 바를 명확하게 파악할 수 있다.
기본적으로 HTTP를사용하여 요청 및 응답을 처리한다.
http://jjang-sport.com/sports/soccer
그래서 RESTful API를 사용할 때 별도의 인프라 구축이 필요없다.
클라이언트가 요청하면 서버는 해당 리소스를 응답해주기만 하면 되기 때문에 클라이언트와 서버가 독립적으로 운영이 가능하다.
REST란? REpresentational(표현) State(상태) Transter(전송)
분산시스템설계를 위한 아키텍쳐 스타일
쉽게 말하면 "사이트 구성 원리"이다.
Restful > Rest 한
Restful API > Rest한 API
자원의 표현을 가지고 상태를 전달한다.
자원(Resource) : URI
/feed/subscriptions
동사가 들어가지 않고 반드시 명사들로만 구성되어야 한다.
표현(Representational) : Header
text/html, image/gif, text/*
상태(State) : Method
GET(조회)
: URI형식으로 웹서버측 리소스(데이터)를 요청
: 이때 요청받은 URI의 정보를 검색하여 응답한다.
HEAD(메세지 헤더( 내부 문서 정보) 취득)
: GET방식과 유사,
응답에 BODY가 없고, 응답 코드와 HEAD만 응답한다.
웹서버 정보확인, 버전 확인, 최종수정일 등 조회시 사용
POST(생성, 내용전송, 파일전송가능)
: 요청된 자원을 생성(create)한다.
PUT(수정, 내용갱신 위주, 파일전송가능)
: 요청된 자원을 수정(update)한다.
모든데이터를 수정할 때 사용한다.
PATCH
: PUT과 유사하다.
자원의 일부를 교체하기 위해 사용한다.
DELETE(삭제)
: 요청된 자원을 삭제(delete)한다.
그외) CONNECT, OPTION, TRACE