REST API URI 규칙

박진형·2021년 9월 5일
12

API 개발을 하면 할수록 URI를 어떻게 명명할지 고민하게 되었고 이번 기회에 URI를 어떻게 정하면 되는지 한번 알아 봤다. 지금껏 내가 잘못하고 있는게 많구나 생각이 들기도 했다.

REST란?

Representational State Transfer의 약자
자원(URI), 행위(HTTP Method), 표현(Representations)로 구성되어 있다.

REST API 설계시 유의점

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

REST API URI를 결정하는 몇가지 규칙

1. 소문자를 사용한다

2. 언더바대신 하이픈을 사용한다.

3. URI의 마지막에는 슬래시를 포함하지 않는다.

  • 후행 슬래쉬는 의미가 전혀 없고 혼란을 야기할 수 있다.

  • 많은 웹 구성 요소와 프레임워크는 다음 두 URI를 동등하게 취급한다.
    http://api.canvas.com/shapes/
    http://api.canvas.com/shapes
    그러나 URI내의 모든 문자는 리소스의 고유 ID에 포함된다.
    두 개의 다른 URI는 두개의 다른 리소스에 매핑된다. URI가 다르면 리소스도 다르고 그 반대도 마찬가지다. 그러므로 REST API는 명확한 URI를 생성해야한다.

    BAD
    http://api.canvas.com/shapes/

    Good
    http://api.canvas.com/shapes

4. 계층관계를 나타낼 때는 슬래시 구분자를 사용해야한다.

  • 슬래시 문자는 URI의 경로 부분에서 자원 간의 계층적 관계를 나타내기 위해 사용한다.
  1. 행위는 포함하지 않는다.

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

6. 전달하고자 하는 자원의 명사를 사용하되, 컨트롤 자원을 의미하는 경우 예외적으로 동사를 허용한다.

BAD
http://api.college.com/course/writing

GOOD
http://api.college.com/course/write

7. URI에 작성되는 영어를 복수형으로 작성한다.

  • 하나의 인스턴스를 복수형으로 표시하는게 영어 문법적으로 맞지 않겟다고 생각할 수도 있지만 URI의 형식을 복수형으로 사용하는 것이 실무에서 많이 사용되고 있다.
  • 관계가 다른 리소스 내에서만 존재할 경우 RESTFUL 원칙은 다음과 같은 지침을 제공한다.
    http://api.college.com/students/3248234/courses
    ID가 3248234인 학생이 학습한 모든 과정 목록 검색 http://api.college.com/students/3248234/courses/physics
    ID가 3248234인 학생을 위한 과정 물리학을 검색한다.

ref - REST API URI 설계를 위한 7가지 규칙

0개의 댓글