inflearn logo
강의

Course

Instructor

HTTP Web Basics for Every Developer

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

503

aaaa123

5 asked

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

 

 

uri restapi

Answer 1

0

codetrain999

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

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

 

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

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

 

감사합니다.

0

ddoddo

서브도메인 마다 각각 스프링어플리케이션들을 두어야 하나요?

 

아니면 스프링프로젝트 하나에서 여러 서브도메인을 지정할 수 있나요?

rest api

0

85

1

채팅에 대해서 질문이 있습니다. ㅠㅠ

0

65

1

강사님 REST API와 GraphQL에 관하여 질문이 있습니다.

0

156

2

자꾸 Incorrect API key provided라고 뜹니다.

0

2102

1

kafka로 restAPI통신

0

867

1

서비스 계층에서 응답 객체 생성 관련 커뮤니티의 생각이 궁금합니다

0

273

1

POST 등록과 PUT 등록 차이 중 의문점

0

667

2

제대로 한게 맞는건가요?

0

382

1

restAPI의 field-selection 개념 관련 질문드립니다!

0

372

1

19강 JSON create 메서드 질문이여!!

1

540

1

세션을 사용할 수 있다면, URL를 설계할때, /member/{id} 와 같이 PathVariable를 가져갈 필요가 있을까요?

0

640

1

REST API의 URI규칙에 대해서 질문드립니다

0

554

1

리소스, URI, HTTP메서드 질문드립니다.

0

472

1

@Pathvariable에 엔티티의 식별자를 넣는 권장 방법이 있나요??

0

218

0

URI와 URL의 차이점..?이 궁금합니다.

0

452

1

모바일 앱 만들 때의 api에도 적용가능한가요?

0

273

1

jsonify 변환시 비정상적인 데이터 반환

0

385

1

게시판 데이터 저장을 @PostMapping으로 말고 @GetMapping으로 하는 방법은 어떻게 하는건가요??

0

123

0

URI, URL의 차이..?

0

809

1

restapi

0

268

1

컨트롤 URI 부분 질문드립니다.

0

304

1

안녕하세요 오류 확인 부탁드립니다

0

325

1

제로초님 질문이 하나 있습니다.

0

508

2

강사님 rest, http api 설계에 대해 궁금한점이 있습니다!

0

834

1