c23 [Spring] Restful API 설계 원칙
본문 바로가기
[Spring]

[Spring] Restful API 설계 원칙

by Jarvis2304 2025. 2. 13.

REST는 "Representational State Transfer"의 약어로, 하나의 URI는 하나의 고유한 리소스(Resource)를 대표하도록 설계된다는 개념입니다. 스마트폰과 태블릿 등 서버에 접근하는 디바이스의 종류가 다양해지고 있기에 디바이스의 종류에 상관없이 공통으로 데이터를 처리할 수 있도록 하는 방식을 REST라고 합니다. 

 

1. 명확하게 기능을 설명하는 이름으로 작성, 대문자사용을 지양하고 소문자 사용
    
    ❌ `GET /users/writing`
    ❌ `GET /users/Post-Comments`
    ⭕ `GET /users/post-comments`

 

2. URL이 길어지는 경우 _ 대신 - 사용
    
    ❌ `GET /users/profile_image`
    ⭕ `GET /users/profile-image`


    
3. 후행 / 는 사용하지 않음
    
    ❌ `GET /users/`  
    ⭕ `GET /users` 
    
4. URL에 HTTP method가 표함되서는 안됨
    
    ❌ `get/users`
    ⭕ `GET /users`
    
5. resource는 동사가 표현되면 안됨
    
    ❌ `GET /users/show/1`
    ⭕ `GET /users/1`
    
6. 파일 확장자는 URL에 포함시키지 않음
    
    ❌ `GET /users/photo.jpg`
    ⭕ `GET /users/photo`  (이때, payload의 포맷은 headers에 accept를 사용한다.)
    

 

7. URL사이에 연관 관계가 있는경우 /리소스/고유ID/관계있는 리소스 순으로 작성
    
    ❌ `GET /users/profile/{user_id}`
    ⭕ `GET /users/{user_id}/profile`   
    
8. URL에 작성되는 영어는 복수형으로 작성
    
    ❌ `GET /product`
    ⭕ `GET /products`  ****
    


9. URI는 / 구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다.

 

 

 

 

▶RESTful API 설계 예시

 

 

출처: https://congsong.tistory.com/28 [Let's develop:티스토리]

 

'[Spring]' 카테고리의 다른 글

[Spring] DTO, VO, Entity  (0) 2025.02.18
[Spring] 스프링이란?  (1) 2025.02.11

댓글