본문 바로가기
  • Where there is a will there is a way.
개발/기타개발

RESTFul Api 2장 URI 식별자 설계

by 소확행개발자 2019. 3. 3.

RESTFul Api 2장 URI 식별자 설계

URI

REST API는 리소스를 나타낼 때 URI를 사용한다.
팀 버너스리는 그가 정의한 웹 구조의 원칙에서 URI의 불투명성에 대해 다음과 같이 설명하였다.

식별자로 할 수 있는 유일한 일은 대상을 나타내는 것이다. 역참조를 할 때가 아니라면 다른 정보를 얻기 위해서 URI의 내용을 들여다보지 말아야 한다.



클라이언트는 웹 연결 방식을 따라야 하고 URI를 불투명한 식별자로 취급해야 한다. ?

즉 REST API 설계자는 URI를 만들 때부터 REST API 리소스 모델을 클라이언트에 전달할 수 있어야 한다.


이 장에서는 REST API URI 의 디자인 규칙들을 소개한다.

이 부분에서 언급하는 규칙들은 URI 형식에 적용되는 것들이다. RFC3986 에서는 일반적인 URI 문법을 다음과 같이 정의하였다. 


규칙 : 슬래시 구분자 / 는 계층 관계를 나타내는 데 사용한다. 


슬래시는 경로 내에서 리소스 간의 계층 관계를 나타내는 데 사용한다.


규칙 : URI 마지막 문자로 슬래시를 포함하지 않는다.


URI 경로 마지막에 있는 슬래시는 아무런 의미가 없지만, 혼란을 초래할 수 있다. 따라서 REST API의 마지막 글자에 슬래시가 와서는 안 되고 클라이언트에 제공하는 링크에도 그런 API를 포함하면 안된다. 


하지만 URI에 포함되는 모든 글자는 리소스의 유일한 식별자로 작용한다. 서로 다른 URI 두 개는 서로 다른 리소스에 매핑된다.


규칙 : 하이픈(-) 은 URI 가독성을 높이는 데 사용한다.


URI를 쉽게 읽고 해석하기 위해, 긴 URI 경로에 하이픈을 사용해서 가독성을 높인다.


규칙 : 밑줄(_) 은 URI에 사용하지 않는다.


규칙 : URI 경로에는 소문자가 적합하다.


규칙 : 파일 확장자는 URI에 포함시키지 않는다.


웹에서 점(.) 문자는 URI에서 파일 이름과 확장자를 구분하는 데 사용한다. 하지만 REST API 에서는 메시지 바디 내용의 포맷을 나타내기 위한 파일 확장자를 URI안에 포함하지 않아도 된다.

대신 이 확장자는 미디어 타입에 의존하는데, Content-Type 헤더를 통해 전달되고 메시지 바디의 내용을 어떻게 처리할지 결정한다.


URI 권한 설계





2019/02/26 - [개발/기타개발] - RESTFul Api 1장 REST 소개


댓글