❓ Restful API가 무엇인지 설명하시오.
Restful API 를 알기 위해서는 API 와 REST API 에 대해 먼저 알아야 한다.
API 란?
소프트웨어가 다른 소프트웨어로 지정된 형식으로 요청, 명령을 받을 수 있는 수단을 말한다.
예) API 를 리모컨과 비교해 보자. 리모컨으로 TV의 채널을 바꾸기 위해서는 채널 변경 버튼을 눌러야 하고, 소리를 조절하기 위해서는 음량 조절 버튼을 눌러야 하는 것처럼 제조사가 미리 정해둔 방법을 이용해야 한다. 여기에서 TV를 조작하기 위해 제조사가 미리 정해둔 방법이 바로 API에 해당한다.
REST API 란?
📍 이해하기 쉽고 사용하기 쉬운 REST API 를 만드는 것이 목적이다.
자원(resource)의 표현(representation)에 의한 상태 전달하는 것을 말한다.
각 요청이 어떤 동작이나 정보를 위한것인지를 그 요청의 모습 자체로 추론이 가능하다.
Restful 하게 만든 API 는 요청을 보내는 주소만으로 대략 어떠한 요청인지 파악이 가능하다.
REST 구성
- 자원(RESOURCE) - ✨ URI
- 행위(Verb) - HTTP METHOD
- 표현(Representations)
✨ URI : 자원을 구조와 함께 나타내는 것을 말한다.
REST API 설계 시 중요 사항
- URI는 정보의 자원을 표현해야 한다.
- 자원에 대한 행위는 HTTP Method(GET, POST, PUT, PATCH, DELETE)로 표현한다.
행위(Method)는 URI에 포함하지 않는다.

이러한 작업을 통틀어 CRUD 작업이라고도 한다.
- Create : 생성
- Read : 조회
- Update : 수정
- Delete : 삭제
REST API 설계 규칙
- URI는 명사를 사용한다.(리소스명은 동사가 아닌 명사로 이뤄져야 한다.)
- 슬래시( / )로 계층 관계를 표현한다.
- URI 마지막 문자로 슬래시 ( / )를 포함하지 않는다.
- 밑줄( _ )을 사용하지 않고, 하이픈( - )을 사용한다.
- URI는 소문자로만 구성한다.
- HTTP 응답 상태 코드 사용
- 클라이언트는 해당 요청에 대한 실패, 처리완료 또는 잘못된 요청 등에 대한 피드백을 받아야 한다.
HTTP 상태 코드 정리
- 파일확장자는 URI에 포함하지 않는다.
Ex) http://test.example.com/restapi/1010/photo.jpg (X)
🤔 REST API와 RESTful API의 차이는 뭘까?
RESTful은 REST의 설계 규칙에 따라 설계된 API를 RESTful한 API라고 한다.
⭐️ 정리
자원(resource)의 표현(representation)에 의한 상태 전달하는 것을 말한다.
URI는 정보의 자원만 표현해야 하며, 자원의 행위는 HTTP Method에 명시해야 한다.