특정 주제에 작성된 1단계(최상위) 답변을 모두 가져와야 하는 요구사항이 있습니다. 새로운 주제를 생성하면 자동으로 게시글(post) 하나가 생성됩니다. 주제에 1단계 답변을 작성하기 위해 다음과 같은 API 호출을 수행합니다.
POST http://discourse-url/posts/
{
“raw”: “This is a first level reply on a topic”,
“topic_id”: 1234,
“reply_to_post_number”: null
}
이제 1단계 답변을 가져오기 위해, 주제에 생성된 첫 번째 게시글의 ID를 post_id로 사용하여 아래 호출을 수행합니다. 이 게시글의 post_number는 1입니다.
하지만 이 호출은 빈 배열을 반환합니다. 이는 Discourse가 주제에 대한 최상위 답변을 '답변(replies)'이 아닌 '게시글(posts)'로 처리하기 때문에 이해할 수 있는 결과입니다. Discourse 용어에서 "replies"는 게시글에 작성되는 것이고, "posts"는 주제에 작성되는 것입니다.
같은 문제에 대한 우회 방법을 찾았습니다. reply_to_post_number를 null로 보내는 대신 1로 보내면 답변을 가져오는 API 호출도 정상적으로 작동합니다. 아래는 샘플 요청입니다:
POST http://discourse-url/posts/
{
“raw”: “This is a first level reply on a topic”,
“topic_id”: 1234,
“reply_to_post_number”: 1
}
이제 아래 API 호출을 통해 이 주제의 1단계 답변을 가져올 수 있습니다.
Posts vs Replies vs Topic 답변에 따르면, 저는 이제 Discourse의 게시글 구조에 근본적인 변경을 가한 것 같습니다.
질문은 이렇습니다: 이 변경 사항이 Discourse의 다른 기능을 깨뜨릴 수 있을까요? 현재 이 변경 사항으로 인해 웹사이트에서 문제를 발견하지는 못했습니다. 하지만 제가 놓치고 있을 수 있고 주의해야 할 부분이 있을까요?