6회차
네이버 부스트코스 풀스택 강좌 듣기 (1강, RestAPI)
API란?
API는 Application Programming Interface의 약자입니다.
해당 메소드가 어떻게 내부적으로 구현되어 있는지는 문서를 봐도 알 수 없다.
하지만, 해당 라이브러리를 사용할 때 구현코드를 알지 못해도 인터페이스만 알면 사용할 수 있다.
이렇게 프로그래밍을 할 때 필요한 인터페이스를 API라고 합니다.
REST API란?
REST는 REpresentational State Transfer라는 용어의 약자로서 2000년도에 로이 필딩 (Roy Fielding)의 박사학위 논문에서 최초로 소개되었습니다.
REST API란 말 그대로 REST형식의 API를 말합니다. (CRUD)
서비스 업체들이 다양한 REST API를 제공함으로써, 클라이언트는 이러한 REST API들을 조합한 어플리케이션을 만들 수 있게 되었습니다.
이를 매시업(Mashup)이라고 합니다.
REST의 조건
client-server
stateless
cache
uniform interface
layered system
code-on-demand (optional)
위에서 언급한 내용을 잘 지켜야만 REST라고 말할 수 있다는 의미입니다.
HTTP프로토콜을 사용한다면 client-server, stateless, cache, lared system, code-on-demand 등에 대해서는 모두 쉽게 구현 가능합니다.
하지만, 문제는 uniform interface
uniform interface의 스타일
- 리소스가 URI로 식별되야 합니다.
- 리소스를 생성,수정,추가하고자 할 때 HTTP메시지에 표현을 해서 전송해야 합니다.
- 메시지는 스스로 설명할 수 있어야 합니다. (Self-descriptive message)
- 애플리케이션의 상태는 Hyperlink를 이용해 전이되야 합니다.(HATEOAS)
Web API
- URI는 정보의 자원을 표현해야 합니다.
- 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현합니다.
예시
- GET /members
- 위의 표현은 맴버의 모든 정보를 달라는 요청입니다.
- GET /members/delete/1
- GET은 정보를 요청할 때 사용합니다. 위와 같이 동사로 삭제를 표현하면 안 됩니다.
- DELETE /members/1
- HTTP Method 중의 하나인 DELETE를 이용하여 삭제를 표현해야 합니다.
GET /members/1 (o) GET /members/get/1 (x) GET /members/add (x) POST /members (o) GET /members/update/1 (x) PUT /members/1 (o) GET /members/del/1 (x) DELETE /members/1 (o)
슬래시 구분자(/)는 계층을 나타낼 때 사용
http://domain/houses/apartments http://domain/departments/1/employees
- URI 마지막 문자로 슬래시 구분자(/)를 포함하지 않습니다.
- 하이픈(-)은 URI가독성을 높일 때 사용합니다.
- 언더바(_)는 사용하지 않습니다.
- URI경로는 소문자만 사용합니다.
- RFC 3986(URI 문법 형식)은 URI스키마와 호스트를 제외하고는 대소문자를 구별합니다.
- 파일 확장자는 URI에 포함하지 않습니다.
- Accept Header를 사용합니다.
결과
- 네이버 부스트 풀스택 강좌 듣기 (1강 마무리)
- 네이버 부스트 풀스택 강좌 듣기 (2강 듣기)