본문 바로가기

Development/Spring

REST API의 URI 설계 기본 규칙

 

 

일반 규칙

 

 

1. URI의 마지막에는  /를 포함하지 않는다.

 

ex) http://localhost:8080/items (O)

      http://localhost:8080/items/ (X)

 

 

2. _ 대신 -를 사용한다.

 

ex) http://localhost:8080/company-name (O)

      http://localhost:8080/company_name (X)

 

 

3. 행위가 아닌 목적(리소스)을 지칭해야 한다. 리소스를 URI에 mapping하여 식별한다. 행위는 HTTP method를 통해 표현(representations)한다. 단, HTML FORM을 통한 컨트롤 URI를 사용할 때는 예외로 한다.

 

ex) http://localhost:8080/members/8 (O)

ex) http://localhost:8080/edit-members/8 (X)

 

 

4. 소문자로 작성한다. 웹 서버의 운영체제는 대부분 대소문자를 구분해서 인식하기 때문이다.

 

ex) http://localhost:8080/books (O)

ex) http://localhost:8080/Books (X)

 

 

5. 파일 확장자는 URI에 포함하지 않는다.

 

ex) http://localhost:8080/products/product1 (O)

ex) http://localhost:8080/products/product1.jpg (X)

 

 

리소스 원형에 따른 규칙

 

 

document는 instance, file, row data 등 하나의 단일 대상을 말한다. 단일 개념이므로 단수형을 사용해야 한다.

 

store클라이언트관리하는 자원 저장소를 뜻한다. 예전 포스팅에서 HTTP method에 대해 정리했던 바와 같이 PUT method를 통해 리소스를 등록하게 된다.

 

collection서버관리하는 resource directory를 뜻한다. POST method를 통해 리소스를 등록하게 된다.

 

storecollection은 단일 개념이 아니므로 복수형을 사용해야 한다.