강의

멘토링

로드맵

인프런 커뮤니티 질문&답변

강낭콩님의 프로필 이미지
강낭콩

작성한 질문수

스프링 기반 REST API 개발

이벤트 목록 조회 API 구현

페이징된 각 이벤트가 self 이외의 링크도 가져야 할까요??

작성

·

217

1

현재 페이징을 하면 각 이벤트는 각자의 self 링크만 갖고 있는데, 이벤트 단건 조회처럼 self 이외에도 update, query, profile 링크도 가져야 하는지 궁금합니다.

페이징 목적상 '조회'가 우선이므로 페이징시에는 self 링크만 노출하고 클라이언트가 페이징한 이벤트 중 추가 조치가 필요한 이벤트에 대해서 self 링크를 타고 들어가 update나 query 등의 링크를 알게 해야 하는지, (이렇게 self 링크만 있으면 상태전이가 된다고 할 수 있는지요?)

아니면 페이징시에도 모든 링크 관계들을 클라이언트에 전달하는지 고민이 됩니다. 

퀴즈

목록 조회 API에서 페이징과 정렬 정보는 주로 어떻게 전달될까요?

요청 본문 (Request Body)

헤더 (Headers)

경로 변수 (Path Variables)

요청 파라미터 (Request Parameters)

답변 1

0

백기선님의 프로필 이미지
백기선
지식공유자

안녕하세요. 좋은 질문이네요.

그런 고민은 이렇게 생각해 보시면 좋을것 같아요. JSON이라고 생각하지 말고 HTML이라고 생각해 보시고, 해당 웹 페이지에서 어떤 링크를 제공해 주는게 적절할 것인가.. 라고 고민해 보신다면 해당 리소스를 JSON으로 보여주면 어떤 링크를 제공해야 하는지는 정해진 답이 있는게 아니겠죠. 리소스에 따라 또 해당 리소스에 주어진 컨텍스트에 따라 (예를 들어, 로그인을 한 상태이지, 익명 사용자인지, 관리자인지. 등) 달라지는게 자연스러울 것 같습니다.

강낭콩님의 프로필 이미지
강낭콩
질문자

아하.... 화면에 따라 권한에 따라 내가 설계함에 따라 다 다르겠군요. hateoas를 만족한다는 것이 리소스에 연관된 모든 링크 정보를 제공해주는 것으로 획일화해서 오해를 했었습니다. 좀 더 고민해보는 습관을 가져보겠습니다.

강낭콩님의 프로필 이미지
강낭콩

작성한 질문수

질문하기