[Boostcourse] 풀스택/웹 프로그래밍(풀스택)

WEB API { 개요, 디자인 가이드, 상태 코드 }

Ben의 프로그램 2023. 7. 24. 18:33
728x90
수업목표
Web API에 대해 알아보고 REST API와 Web API의 차이에 대해 알아봅시다. Web API를 잘 작성하기 위한 디자인 가이드에 대해 살펴보도록 합니다. 

 

Web API 디자인 가이드 란?
REST API 강의에서 REST API의 모든 스타일을 구현하지 못할 경우에는 Web API 혹은 HTTP API로 부른다고 했습니다. 이런 Web API를 만들 때는 몇 가지 규칙이 있습니다. 

 

HTTP API 디자인가이드 : 1. 올바른 HTTP Method
첫째, 자원에 대한 행위는 HTTP Method(GET, POST, PUT, DELETE)로 표현한다. 예제를 보면서 올바른 HTTP Method 에 대해서 살펴보도록 하겠습니다.

POST(생성), GET(조회), PUT(수정), DELETE(삭제)와 같이 HTTP Method 들은 앞에서 표현되고 중간에 쓰여서는 안됩니다. add, update, del 같은 표현은 HTTP Method 에 없는 표현입니다. 

 

HTTP API 디자인가이드 : 2. URI는 정보의 자원을 표현해야 한다
둘째, URI는 정보의 자원을 표현해야 한다. URI가 정보의 자원을 표현하는 방법을 살펴보겠습니다. 
Get /members 라는 요청은 members 에 대한 모든 정보를 달라는 요청입니다. Get /members/delete/1 은 Get 방식으로 요청을 했는데, delete 라는 동사가 있습니다. 이렇게 사용하면 안됩니다. Get 이라는 것은 조회를 의미하는데, Delete 는 삭제를 의미합니다. 이렇게 표현하기 보다는 아래쪽에 있는 DELETE/members/1 로 표현하는 것이 옳은 방법입니다. 

 

 

HTTP API 디자인가이드 : 3. 슬래시 구분자(/), 하이픈(-), 언더바(_), 소문자, 파일확장자
- 슬래시 / 는 계층을 나타날 때 사용합니다. 예를 보겠습니다.
첫 번째 URL은 domain 중에서 houses 중에서 apartments 를 의미합니다. 이와 같이 슬래시 / 는 계층을 나타낼 때 사용합니다. 

- 하이픈(-)은 URI가독성을 높일 때 사용합니다. 

- 언더바(_)는 사용하지 않습니다.

- URI 경로는 소문자만 사용합니다. RFC 3986(URI문법형식)은 URI스키마와 호스트를 제외하고는 대소문자를 구별합니다.

- 파일 확장자는 URI에 포함시키지 않습니다. Accept Header 를 사용한다. 

 

상태코드 (성공) 200번대
상태코드 200번대는 성공을 의미합니다. 

 

상태코드 (클라이언트로 인한 오류) 400번대
400 번대 상태 코드는 클라이언트로 인한 오류입니다. 401번과 403번 예제는 위의 그림에 있으니까 405번의 예제만 살펴보겠습니다. 405번 상태코드는 예를들어 클라이언트가 요청한 서블릿에서는 doGet 메서드만 사용 가능한데, post 메서드를 실행했다면 반환 받는 응답 코드입니다. 

 

상태코드 (서버로 인한 오류) 301번, 500번대
500 번대 응답코드는 서버에 널포인트 오류가 발생했다던가 하는 이유로 발생하는 오류입니다. 301번 상태코드는 클라이언트가 요청한 리소스에 대한 URI가 변경 되었을 때 사용하는 응답 코드입니다. 

 

 

 

출처 : boostcourse 웹 프로그래밍(풀스택) 
https://www.boostcourse.org/web316/lecture/20655?isDesc=false