본문 바로가기

IT-백엔드

Rest API에 대해서 2

역사 Restful API의 탄생

로이 필딩

로이 필딩은 웹 소프트웨어를 개발하시고 그런 경험을 토대로 HTTP에 상당한 기여를하신 분입니다.

로이 필딩은 웹 구조를 서술한 비공식 문서들이 존재하나, 실제 웹 구현이 너무 빨라서 시대에 뒤떨어진 경우가 많다라고 말했습니다. 그리고 그 당시에는 이미 캐시와 프록시 등이 웹에는 존재했지만 이에 대해 인식하는 표준은 없다시피했다라고했습니다. 그래서 Rest를 개발하게 되었다고합니다.

 

Rest가 처음 개발된 것은 1994년 10월부터 1995년 8월 사이로 개발되었습니다. 그리고 개발된 이유는 HTTP 1.0, 1.1의 개념을 소통하기 위해서였습니다.

 

구현 방법 Restful API

Rest는 자원의 표현을 가지고 상태를 전달하다입니다.

자원은 URI에 명시하고 표현은 헤더로 전달할 수 있습니다. 표현은 클라이언트가 절달받고자하는 자원에 대한 데이터를 애기합니다. 그리고 저기 표현에서 예시중에 text/*가 있는데요. 저거는 텍스트에서 모든 타입을 전부 다 가져오는 것입니다. 마지막으로 상태는 HTTP 메소드를 구현합니다.

 

 

자원(Resource)

모든 URI는 자원으로 나타냅니다.

위에꺼가 틀리고 아래꺼가 맞습니다. URI에는 동사가 들어가면 안됩니다. 무조건 자원만 들어갈 수 있습니다. 그래서 HTTP 메서드를 통해서 동작을 나타냅니다.

 

상태(State)

모든 동작은 Method로 나타냅니다.

 

HTTP 메소드 종류

 

 

GET:

- URI 형식으로 웹 서버측 리소스(데이터)를 요청.

- 이 때 요청 받은 URI의 정보를 검색하여 응답한다.

 

HEAD:

- GET 방식과 유사

- 응답에 BODY가 없고 응답 코드와 HEAD만 응답한다.

- 웹 서버 정보 확인, 버전 확인, 최종 수정일 등 조회시 사용

 

 

POST: 내용 전송(파일 전송 가능)

- 요청된 자원을 생성(create)한다.

 

 

PUT: 내용 갱신 위주(파일 전송 가능)

- 요청된 자원을 수정(update)한다.

- 모든 데이터를 수정할 때 사용한다.

 

PATCH:

- PUT과 유사

- 자원의 일부를 교체하기 위해 사용한다.

 

 

 

표현(Representational):

리소스의 응답 타입은 Header로 나타낸다.

 

응답 받고 싶은 타입은 Accept로 나타낼 수 있습니다.

무엇을 적어야할지 모르겠다면 그냥 브라우저가 알아서 설정해서 보내는 Accept를 사용하면 됩니다.