본문 바로가기
boostcource/boostcourse_web programming

Web API

by sgyeong 2024. 4. 27.

REST API의 모든 스타일을 구현하지 못할 경우에 Web API나 HTTP API라고 한다.

 

Web API 원칙

- URI는 정보의 자원을 표현해야 한다.
- 자원에 대한 행위는 HTTP Method (GET, POST, PUT, DELETE)로 표현한다.

 

Method 역할
POST POST를 통해 해당 URI를 요청하면 리소스를 생성한다. 
GET GET를 통해 해당 리소스를 조회한다. 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져온다.
PUT PUT을 통해 해당 리소스를 수정한다.
DELETE DELETE를 통해 리소스를 삭제한다.

 

 

 

URI는 정보의 자원을 표현해야 한다.

 

GET / members

멤버의 모든 정보를 달라는 요청이다.

(명사는 보통 집합을 나타내기 때문에 복수형으로 나타내는 것이 좋다.)

 

GET / members / delete / 1

GET은 정보를 요청할 때 사용한다. 위와 같이 동사로 삭제를 표현하면 안 된다.

 

DELETE / members / 1

HTTP Method 중의 하나인 DELETE를 이용하여 삭제를 표현해야 한다.

members 중에 1에 해당하는 정보를 삭제해달라는 의미이다.

 

 

조회, 입력, 삭제, 수정과 관련된 것들이 동사로 표현되면 안 된다.

앞의 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)

 

 

슬래시 구분자(/)는 계층을 나타낼때 사용한다.

http://domain/houses/apartments

http://domain/departments/1/employees

 

- URI 마지막 문자로 슬래시 구분자(/)를 포함하지 않는다.

- 하이픈(-)은 URI 가독성을 높일때 사용한다.
- 언더바(_)는 사용하지 않는다.
- URI 경로는 소문자만 사용한다. RFC3986(URI 문법 형식)은 URI 스키마와 호스트를 제외하고는 문자를 구별한다.
- 파일 확장자는 URI에 포함시키지 않는다. Accept Header를 사용한다.

 

 

상태 코드 (성공)

상태코드  
200 클라이언트의 요청을 정상적으로 수행함
201 클라이언트가 어떠한 리소스 생성을 요청, 해당 리소스가 성공적으로 생성됨
(POST를 통한 리소스 생성 작업 시)

 

 

상태 코드 (클라이언트로 인한 오류)

상태코드  
400 클라이언트의 요청이 부적절할 경우 사용하는 응답 코드
401 클라이언트가 인증되지 않은 상태에서 보호된 리소스를 요청했을때 사용하는 응답 코드
(로그인하지 않은 유저가 로그인했을 때, 요청 가능한 리소스를 요청했을 때)
403 유저 인증 상태와 관계 없이 응답하고 싶지 않은 리소스를 클라이언트가 요청했을때 사용하는 응답 코드
(403보다는 400이나 404를 사용할 것을 권고. 403 자체가 리소스가 존재한다는 뜻이기 때문)
405 클라이언트가 요청한 리소스에서는 사용 불가능한 Method를 이용했을 경우에 사용하는 응답 코드
(예를들어 서블릿에 doGet만 가지고 있었는데 사용자가 Post로 요청한 경우)

 

 

상태 코드 (서버로 인한 오류)

상태코드  
301 클라이언트가 요청한 리소스에 대한 URI가 변경되었을 떄 사용하는 응답 코드
(응답시 Location header에 변경된 URI를 적어줘야 한다.)
500 서버에 문제가 있을 경우 사용하는 응답 코드

 

 

 

 

 

 

 

 

 

 

참고 : boostcourse    https://www.boostcourse.org/web316/lecture/16741/?isDesc=false

 

웹 프로그래밍(풀스택)

부스트코스 무료 강의

www.boostcourse.org

 

'boostcource > boostcourse_web programming' 카테고리의 다른 글

Web Api -2  (1) 2024.04.28
Web API -1  (0) 2024.04.28
REST API  (0) 2024.04.27
JDBC -4  (0) 2024.04.27
JDBC -3  (0) 2024.04.27