rest api설계 디자인에 관하여
259
작성한 질문수 6
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
안녕하세요. 현재 프로젝트로 스케줄러 rest api 개발을 하고 있습니다.하지만 rest api 설계 중 어떤 형식으로 설계해야 좋은 설계가 될지 고민이 들어 질문 드립니다.
스케줄러 시나리오는 다음과 같습니다.
유저A가 여러 유저들과 그룹a'를 만들고 그룹a'에서 스케줄을 생성할 수 있습니다.
유저A는 모든 약속을 한번에 모아볼 수 있고, 또는 그룹a'의 방에 들어가서 그룹a'의 스케줄을 볼 수 있습니다.
1번
/user/{userId}/schedules : 유저의 모든 스케줄
/group/{groupId}/schedules : 그룹의 모든 스케줄
/schedules/{scheduleId} : 상세 스케줄
2번
/schedules/user/{userId} or /schedules?userId= 유저의 모든 스케줄
/schedules/group/{groupId} or /schedules?groupId 그룹의 모든 스케줄
/schedules/{scheduleId} 상세 스케줄
어떤 방식이 좋은 방식인가요?
1번은 계층적 구조에 중점을 두었다 생각하고 2번은 리소스에 대한 가시성이 좋다고 생각이 듭니다.
웹페이지를 라우팅할때는 1번 rest api를 설계할때는 2번 방식을 무심코 썼었던거 같은데 둘의 URL매핑 구조는 달라야 하는게 맞는건가요?
글이 두서가 없어 죄송합니다! 아직 지식에 부족함이 많아 정리가 잘 안되네요.
답변 1
0
안녕하세요. yoona405님, 공식 서포터즈 David입니다.
상황에 따라 다를 것 같습니다. 둘 다 사용할 수 있는 상황을 예를 들어보겠습니다.
예를 들어, 개인 사용자가 자신의 모든 일정을 보려고 할 때 /user/{userId}/schedules 경로를 가지는 API를 호출 할 수 있습니다.
그리고 관리자가 일정 검색 기능을 통해 특정 유저의 일정을 검색하려고 합니다. 이때는 /schedules?userId=?&startDate=?&endDated 와 같이 사용할 수도 있습니다.
따라서, 특정 케이스를 배제하지 않고 필요한 것을 상황에 맞게 사용하시면 됩니다.
감사합니다.
0
답변 감사합니다.
그럼 관리자가 아닌, 유저의 모든 일정을 요청하기 위해 client가 api를 호출할때에는
/user/{userId}/schedules 가 더 선호되는방식인가요?
마지막으로 서비스들에서 보통 두가지 경우를 다 구현해 놓는지 궁금합니다!
캐시무효화시 그냥 no-store만 넣어되지 않나요?
0
69
2
API의 헤더와 바디에 대한 문의 입니다.
0
70
2
수정폼과 수정
0
66
1
쿠키에 대해 질문드려요!
0
88
2
서버에서 캐시 검증 헤더를 직접 처리해야 하나요?
0
86
1
http api get, post 멱등
0
40
1
컬렉션의 개념
0
49
1
시작라인에 들어가는 요청 대상 경로는 상대 경로 아닌가요?
0
53
1
PATCH 는 PUT처럼 멱등이여야 하지 않나요?
0
80
1
리소스 질문드립니다
0
56
1
IP 패킷 질문입니다.
0
58
1
html from, http api
0
74
2
브라우저 캐시가 60초 유효하다는게 무슨 뜻일까요
0
120
1
stateless 무상태 예제가 생각났는데. 저가 생각 한게 맞는지 궁금합니다.
0
98
1
URI 및 URL 질문, 왜 자바(스프링)에서는 이렇게 나누었는지?
0
140
1
host와 port
0
106
1
tcp/ip는 연결을 유지? 아니면 유지하지 않음?
0
144
1
다음 강의 커리큘럼 질문!!
0
130
2
캐시 개념에 대해서 설명하시지는 않으시는건가요?
0
113
1
클라이언트가 patch, delete 요청 시 알아야 하는 url
0
90
1
html form 형태 전송시 new, edit 등 컨트롤 리소스를 사용하는 이유
0
168
2
비 연결성(connectionless) 강의에서 질문입니다~
0
139
1
PATCH를 사용하지 못할 때 왜 POST?
0
161
2
협상과 우선순위3 질문드립니다.
1
130
1





