API 디자인 규칙
URI 표현
URI는 정보의 자원을 표현해야 된다. (리소스 이름은 동사보다 명사를 사용. 복수형으로 작성) 자원을 표현하는데 중점을 두어야 되며, 행위를 표현하면 안 된다.
회원을 추가할 때
- GET/members/insert/1 (X)
- POST/members/1 (O)
회원을 가져올 때
- GET/members/show/1 (X)
- GET/members/1 (0)
슬래시 계층
슬래시 구분자는 계층관계를 나타내는 데 사용한다.
- restapli.example.com/house/apartment
- restapli.example.com/house/animals/mammals/whales
마지막 슬래시 제외
API 마지막 문자로 슬래시(/)를 포함하지 않음
- restapli.example.com/house/apartment/ (X)
- restapli.example.com/house/apartment (O)
하이픈 사용
하이픈 (-)은 URL 가독성을 높이는 데 사용
밑줄 사용 제외
밑줄 (_) 은 URL에 사용하지 않음
소문자 사용
URL 경로에는 소문자가 적합
파일 확장자 제외
파일 확장자는 URL에 포함시키지 않음
관계 표현
관계 표현이 필요할 경우
- GET:/users/{userid}/devies (일반적으로 소유의 관계를 표현할 때)
- GET:/users/{userid}/likes/devices (관계명이 애매하거나 구체적 표현이 필요할 때)
더 큰 단위의 리소스
더 큰 단위의 리소스를 표현할 경우
자원을 표현하는 Collection과 Documnent를 예시로 들 수 있음.
Collection 자료구조 내지 객체들을 담고있는 집합체.
Document 특정 객체 1개를 표현할때 쓰는 표현.