BoostCourse
Web API
Sh4869
2020. 2. 25. 15:29
Web API를 이해하기 전 Rest API에 관해 알아볼 필요가 있다.
Rest API는 한번에 설명하기 모호한 개념이 많아서 블로그 포스팅으로 한계가 있다고 생각했다.
Rest API에 대한 최고의 자료라고 생각하는 자료를 첨부한다.
https://www.youtube.com/watch?v=RP_f5dMoHFc
학습 목표
- REST API와 Web API의 차이에 대해 이해합니다.
- Web API의 디자인 가이드에 대해 이해합니다.
핵심 개념
- Web API
- HTTP Methods
Web API
REST API를 완벽하게 구현하는 일은 쉽지 않다. REST API를 완벽하게 구현 하지 못한 경우 Web API라고 부른다. 대부분 REST의 HATEOAS와 self-descriptive를 만족하지 못하는 경우가 많다.
Web API 디자인 가이드
- URI는 정보의 자원을 표현해야 한다.
- 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현해야 한다. (URI에 동사형으로 끼워넣어선 안된다)
URI는 정보의 자원을 표현해야 한다.
- GET /members - 맴버의 모든 정보를 달라는 요청
- GET /members/delete/1 - 다음과 같이 uri에 delete라는 삭제를 요청해서는 안된다.
- DELETE /members/1 - HTTP Method를 이용하여 삭제를 요청
자원에 대한 행위는 HTTP Method로 표현한다.
- 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)
URI에 동사를 넣어서 의미를 표현하려고 하면 의미가 모호해진다. 반드시 HTTP Method를 이용하여 동작을 수행해야 한다.
슬래시 구분자(/)
계층을 나타낼 때 사용한다.
http://domain/house/apartments
http://domain/departments/1/employees
- URI 마지막 문자로 슬래시 구분자(/)를 포함하지 않습니다.
- 하이픈(-)은 URI가독성을 높일 때 사용합니다.
- 언더바(_)는 사용하지 않습니다.
- URI경로는 소문자만 사용합니다.
- RFC 3986(URI 문법 형식)은 URI스키마와 호스트를 제외하고는 대소문자를 구별합니다.
- 파일 확장자는 URI에 포함하지 않습니다.
- Accept Header를 사용합니다.
상태 코드 (성공)
상태 코드 (클라이언트로 인한 오류)
상태 코드 (서버로 인한 오류)