Rest / RestAPI / RestFul 는 무엇일까?
프로젝트를 진행하면서, 취업사이트에 구인구직을 하면서 항상 보는 단어가 RestFul API 이다. 이 RestFul API는 무엇일까?
이를 위해서 우선 Rest가 무엇인지 알아보자
Rest란?
Rest의 약자는 “Representational State Transfer”이다.
웹상에서 서로 정보를 주고 받을때, 자원을 이름으로 구분하여 주소를 통해 이에 대한 자원을 CRUD 한다
Rest 의 구성
- HTTP URI(Uniform Resource Identifier)
- HTTP Method
- CRUD Operation
Rest의 구성은 HTTP URI , HTTP Method, CRUD Operation 으로 구성 되어있다.
말은 매우 어렵지만 해석은 간단하다.
1. HTTP URI를 통한 자원을 명시
즉 주소창에서 …./post/1 은 “게시글(post)의 1 번글” 과 같은 명시를 해준다.
2. HTTP Method를 통한 행위 명시
HTTP Method의 종류는 여러가지가 있다.
1
2
3
4
5
- GET : 리소스 조회
- POST : 주로 데이터 등록에 사용
- PUT : 리소스를 대체, 해당 리소스가 없으면 생성
- PATCH : 리소스를 일부만 변경
- DELETE : 리소스 삭제
그외 기타 메소드 HEAD, OPTIONS ,CONNECT ,TRACE등이 있다.
위의 주요 5개의 메소드를 통해 위의 주소에 행위를 요청한다
ex) GET …/post/1 “게시글 1번을 보여줘!”
ex) DELETE …/post/3 “게시글 3번을 삭제해줘!”
3. 자원에 대한 CRUD Operation 적용
HTTP Method에 대한 요청에 대해 CRUD(Create , Read, Update, Delete) 등의 행위를 해준다.
자원 보여주는 반환형태가 있을 수도 있고, 자원을 삭제, 수정의 명령이 적용된다.
그래서 Rest란?
결론은 Rest란 자원에 명칭을 주소화하여 어떤 명령인지를 인지하고 이를 통해 자원을 보기,생성,수정,삭제를 항는것이라고 결론 내릴 수 있다.
그럼 Rest API 란 무엇일까?
Rest API 란 더욱 간단하다 REST 기반으로 서비스 API를 구현한것으로, 서비스에서 Rest 라는 아키텍처에 원리를 지키는것을 의미한다.
Rest 의 원리는 다음과 같다.
1
2
3
4
5
- URI는 동사보다는 명사를, 대문자보다는 소문자를 사용
- 마지막에 슬래시 (/)를 포함하지 않는다.
- 언더바 대신 하이폰을 사용한다.
- 파일확장자는 URI에 포함하지 않는다.
- 행위를 포함하지 않는다.
Okay 그럼 마지막으로 Restful 은 뭐야?
더욱 간단하다. Rest API 를 지원하는 웹서비스를 Restful 이라고 할 수 있다.
후기
Rest에 대한 내용을 공부할 수 있다. 최근에 프로젝트 기능을 구현하면서, 궁금했던 내용을 글로 정리하니 마음이 편하다. 깊이 파면 더 많은 내용이 존재하지만, 지금은 이 정도로 충분하다 생각된다!