REST API 설계의 규칙

REST API백엔드RESTAPIURLURI
avatar
2025.04.10
·
5 min read

개요

REST API는 자원의 주소를 나타내기 위해 Uniform Resource Identifiers (URIs)를 사용한다.

규칙을 따르기 전 URI 형식과 관련된 규칙으로 URI형식에 대한 단어 RFC 3986은 일반적인 URI 문법을 정의 하였다.

URI = scheme "://" authority "/" path ["?" query]["#" fragment]

규칙

1. URI에 후행 슬래시(/)는 포함되지 않는 것이 좋다.

혼란을 줄수 있고 의미가 없는 후행 슬래시를 URI 경로의 마지막에 포함시키지 않는 것은 따라야 할 규칙들 중 가장 중요한 것중 하나이다. REST API는 후행 슬래시를 가지지 않고, Client들에게 제공하는 링크에 후행 슬래시는 포함되지 않는 것이 좋다.

예시

1 - http://api.test.com/notice/

2 - http://api.test.com/notice

이 두 개의 URI는 다른 resource를 가르킨다. resource가 다르면 URI가 다른 것이다. 반대로 URI가 다르면 resource 또한 다른 것이다.


2. 슬래시(/)는 계층관계를 나타내는데 사용하는 것이 좋다.

슬래시 문자는 URI의 경로 부분에서 resource들 간의 계층 관계를 나타내는데 사용된다.

예시

http://api.test.com/notice/important/1


3. URI의 가독성을 위해 하이픈 (-)을 사용하는 것이 좋다.

URI를 쉽게 인식, 해석해야 하고 긴 경로 요소 이름의 가독성을 증가 시키기 위해 하이픈을 사용하는 것이 좋다.


4. URI에서 언더바(_)는 사용하지 않는 것이 좋다.

텍스트 viewer 어플리케이션 (브라우저, 에디터 등등..)에서는 종종 URI에 클릭할 수 있다는 시각적 힌트를 주기 위하여 밑줄을 사용한다. 하지만 어플리케이션의 폰트에 따라 언더바 문자는 밑줄로 인하여 부분적으로 보이지 않거나 완전히 가려질 수 있다.

이러한 혼란을 피하기 위해 언더바(_) 대신 하이픈(-)을 사용을 권장한다.


5. URI 경로에서는 소문자를 선호한다.

대문자가 문제를 일으킬 수 있으므로 URI 경로에서는 소문자를 선호하는 것이 편리하다.
RFC 3986은 URI를 scheme 혹은 host component를 제외하고 대소문자를 구분하는 것으로 정의하였다.

예시

1 - http://api.test.com/notice/important/1

2 - HTTP://API.TEST.COM/notice/important/1

3 - http://api.test.com/NOTICE/IMPORTANT/1

위 URI 중 1번과 2번은 같다.

위 URI 중 1, 2번과 3번은 같지 않다.


6. URI에는 파일 확장자가 포함되지 않는 것이 좋다.

웹상에서 마침표(.) 문자는 URI에서 파일의 이름과 확장자를 구분하는데 흔히 사용된다. 하지만 REST API에서는 메시지들의 객체 body를 나타내기 위해 URI에 임의의 파일 확장자를 포함하면 좋지 않다. 보안에 안좋다. 대신 body의 내용이 어떻게 흐르는지 결정하는 Content-Type Headers를 통해 전달되는 media-type에 의존해야 한다.

예시

1 - http://api.test.com/notice.json

2 - http://api.test.com/notice

파일의 확장자는 format을 나타내기 위해 사용 되면 보안에 약하다.

REST API Client는 HTTP가 제공하는 형식의 선택 메커니즘인 Accpet request Header를 사용할 수 있다.







- 컬렉션 아티클