• 카테고리

    질문 & 답변
  • 세부 분야

    웹 개발

  • 해결 여부

    미해결

사용자, 관리자 Rest API를 한 서버에서 관리할 때, URI 설계

24.05.23 01:31 작성 24.05.23 01:33 수정 조회수 94

0

안녕하세요.

이번에 신입 백엔드 개발자로 취업하게 되어 프로젝트를 진행 중에 해당 HTTP 강의를 듣고 궁금한 점이 생기어 올리게 되었습니다.

 

다름이 아니라 사용자 API와 관리자 API를 제공하는 서버가 분리되어 있지 않고 한 서버에서 모두 제공하는 형태에서 URI를 어떻게 설계해야 하는지 잘 모르겠습니다.

 

예를 들어, 로그인 API를 예시로 들어보자면 "/v1/api/login" 으로 만들면 깔끔한데 관리자 로그인도 들어가야해서 결국 "/v1/api/user/login", "/v1/api/admin/login" 으로 설계하게 되었는데 이게 잘 설계한 것인지 모르겠습니다...

 

[예시]


  1. 인증이 필요없는 API --> 기본 Path "/api/v1/..."

--> ex. /api/v1/products (상품 목록 API)

 

  1. 사용자 인증이 필요한 API --> 기본 Path "/api/v1/user/..."

--> ex. /api/v1/products (내 상품 목록 API)

 

  1. 관리자 인증이 필요한 API --> 기본 Path "/api/v1/admin/..."

--> ex. /api/v1/admin/products (모든 유저 상품 목록 API)


 

[궁금한 점]

  1. 사용자 API와 관리자 API를 한 서버에서 제공하는 경우에 URI를 어떤 규칙을 갖고 설계하는 게 좋은지 궁금합니다.

 

  1. 하나의 컨트롤러에다 인증이 필요없는 Public API, 사용자 API, 관리자 API를 모두 관리하는 게 좋은지 아니면 권한별로 컨트롤러를 쪼개서 관리하는 게 좋은 것인지 궁금합니다.

     

--> (하나의 컨트롤러로 관리) ex. ProductController

--> (권한 별로 쪼개서 관리) ex. PublicProductController, UserProductController, AdminProductController

 

 

답변 1

답변을 작성해보세요.

0

codesweaver님의 프로필

codesweaver

2024.05.23

안녕하세요. akgkfk3님, 공식 서포터즈 코즈위버입니다.

저라면 API 별로 서브도메인을 만들어 분리할것 같습니다.

 

API에 담아야 하는 내용은 보통 관리자와 프론트가 다른 경우가 많습니다. 분리해서 따로 관리하는 것이 좋아보이며, 관리자 API, 프론트 API 를 아예 다른 프로젝트로 관리하는 것도 괜찮습니다.

인텔리제이를 이용하고 계시다면 한 프로젝트 안에서 멀티 프로젝트를 구성하여 별도로 빌드 및 배포하도록 관리할 수 있습니다.

 

감사합니다.

채널톡 아이콘