To-Do 리스트 REST API 엔드포인트 설계

날아올라돼지야·2024년 9월 12일

로그인한 사용자의 To-Do 리스트 항목을 가져오는 REST API 엔드포인트를 설계할 때, RESTful API 설계 원칙에 따라 리소스 중심적이고 의미 있는 URL을 사용하는 것이 중요합니다. 다음은 베스트 프랙티스에 따라 엔드포인트를 설계하는 방법입니다.

1. 리소스 기반 URL

RESTful API는 리소스(자원)를 기반으로 URL을 설계합니다. 여기서 리소스는 To-Do 항목이므로, To-Do 리스트에 대한 리소스를 표현하는 URL을 사용해야 합니다.

2. 현재 로그인한 사용자의 컨텍스트 활용

현재 로그인한 사용자는 보통 JWT 토큰이나 세션을 통해 인증되므로, 해당 사용자를 명시적으로 URL에 나타낼 필요가 없습니다. 따라서 URL에 사용자 정보를 포함하지 않고, GET /todos와 같이 로그인된 사용자의 리소스를 가져오는 엔드포인트를 사용하는 것이 일반적입니다.

3. To-Do 리스트의 API 엔드포인트 예시

로그인한 사용자의 모든 To-Do 항목 가져오기

GET /api/todos
  • 설명: /todos로그인된 사용자의 모든 To-Do 리스트 항목을 가져옵니다. 로그인된 사용자의 ID는 서버에서 JWT나 세션을 통해 알 수 있기 때문에 URL에 명시할 필요가 없습니다.
  • 적용: 이 방식은 사용자별로 To-Do 항목을 관리할 때 효율적이며, URL을 깔끔하게 유지할 수 있습니다.

특정 카테고리나 필터가 필요할 때

GET /api/todos?status=completed
GET /api/todos?priority=high
  • 설명: 사용자의 To-Do 항목에 대해 추가적인 필터나 상태를 적용하려면 쿼리 파라미터를 활용할 수 있습니다.
  • 적용: ?status=completed와 같은 쿼리 파라미터를 사용해 완료된 항목만 가져오거나, 특정 필터 조건을 적용할 수 있습니다.

4. 확장 가능성을 고려한 엔드포인트

특정 To-Do 항목 조회

GET /api/todos/{todoId}
  • 설명: 특정 To-Do 항목을 조회할 때는 고유한 To-Do ID를 URL에 포함시켜 해당 항목을 가져오는 방식이 좋습니다.

특정 사용자의 To-Do 리스트 조회 (관리자나 다른 사용자 정보를 조회할 필요가 있는 경우)

GET /api/users/{userId}/todos
  • 설명: 특정 사용자의 To-Do 리스트를 조회해야 하는 경우(관리자 기능 등)를 위해 사용자 ID를 URL에 포함시키는 방식도 가능합니다. 하지만 일반적으로 로그인된 사용자 자신의 To-Do 항목을 가져오는 경우는 URL에 사용자 ID를 포함하지 않는 것이 좋습니다.

결론

로그인된 사용자의 To-Do 리스트를 가져오는 API 엔드포인트는 일반적으로 다음과 같은 형식으로 구성하는 것이 RESTful 설계의 베스트 프랙티스입니다:

  • 로그인한 사용자의 To-Do 항목 조회: GET /api/todos
  • 특정 To-Do 항목 조회: GET /api/todos/{todoId}
  • 특정 필터를 적용한 조회: GET /api/todos?status=completed

이 방식은 리소스 중심적이고, 직관적이며 확장 가능한 URL 설계를 제공합니다.

profile
무슨 생각하며 사니

0개의 댓글