/t/slug/123.json?post_number=10은 5번째 게시글을 가져옵니다. /t/slug/123.json?post_number=50은 45번째 게시글을 가져오고, 같은 방식으로 계속됩니다. 항상 5만큼 어긋나 있습니다. 모든 게시글을 가져오려면 페이지네이션을 사용해야 하며, 이를 고려하지 않으면 목록이 정확하지 않게 됩니다.
이것이 컨텍스트를 위해 이전 게시글 몇 개를 포함시키기 위해 고의로 그렇게 설계된 것일 것이라고 추측할 뿐입니다. 만약 그렇다면, 제 생각에는 이를 API가 아니라 UI에서 처리하는 것이 맞습니다.
싱글 페이지 애플리케이션(SPA)인 Discourse는 작업을 최소화하기 위해 API를 효율적으로 사용합니다. 게시글 하나당 API 호출을 한 번씩 하는 것은 합리적이지 않습니다. 그렇게 하면 클라이언트와 서버 간의 왕복 통신량이 기하급수적으로 늘어날 것입니다.
결과에서 원하는 게시글을 선택하는 것은 매우 간단합니다. 위와 마찬가지로, 40번 게시글의 cooked 콘텐츠만 가져오는 경우:
○ → curl -s 'https://meta.discourse.org/t/fkb-pro-social-theme/234323.json?post_number=40' | jq -r '.post_stream.posts[] | select(.post_number == 40) | .cooked'
<p>Hi Tiago,</p>
<p>Can you please clarify it a little bit? Some screenshots, your actual code and where is your advert appear would be very helpful. Thank you <img src="https://emoji.discourse-cdn.com/twitter/slightly_smiling_face.png?v=12" title=":slightly_smiling_face:" class="emoji" alt=":slightly_smiling_face:" loading="lazy" width="20" height="20"></p>
또는, 쿼리 중인 단일 게시글에 대한 정보만 반환하는 것이 절대적으로 필요하다면, 그렇게만 하는 Data Explorer 쿼리를 작성하는 것이 가능합니다.