REST API URL 규칙

Published
March 13, 2025
Last updated
Last updated March 13, 2025
Category

리소스 명사는 복수형으로

# Good /language-tests # Bad /language-test

URL에 kebab-case 사용, parameter에 camelCase 사용

# Good /language-tests /language-tests/{testId} # Bad /language_tests/{test-id} /languageTests/{test_id}

리소스 URL에 동사 금지

# Good POST /language-tests # Bad POST /language-tests/create

단, CRUD 작업이 아닌 경우에는 동사 사용 가능

POST /language-tests/123/revalidate

리소스 리스트에는 리소스 갯수 포함

GET /language-tests # Response { languageTests: [ ... ], total: 42 }

PUT vs. PATCH

둘의 역할은 모두 업데이트로 같지만, PATCH는 제공된 필드만 업데이트하고 나머지는 그대로 유지합니다.

Nested resource

GET /posts/2/comments DELETE /posts/2/comments/3
위와 같이 중첩된 리소스를 표현할 수 있습니다.
이때, 리소스를 nested로 표현할지, flat하게 표현할지 고민이 될 수 있습니다.
# Nested GET /posts/2/comments/3 # Flat GET /comments/3
각 방법마다 trade-off가 존재하겠지만, 어떤 방법을 선택할지 고민이 된다면 대부분 flat 한것이 nested보다 낫다는 것을 기억해야합니다.

다수의 리소스 생성/수정/삭제

Reference