안녕하세요 @Discourse,
토픽 목록 페이지에서 각 토픽의 제목 아래에 제3자 API에서 가져온 데이터를 렌더링하고 싶습니다. 모범 사례를 따르며 데이터를 렌더링하는 방법에 대해 안내해 주실 수 있을까요?
저는 Discourse 커스터마이징에 대해 많이 알지 못합니다. 조언을 주시면 큰 도움이 될 것입니다. 감사합니다!
안녕하세요 @Discourse,
토픽 목록 페이지에서 각 토픽의 제목 아래에 제3자 API에서 가져온 데이터를 렌더링하고 싶습니다. 모범 사례를 따르며 데이터를 렌더링하는 방법에 대해 안내해 주실 수 있을까요?
저는 Discourse 커스터마이징에 대해 많이 알지 못합니다. 조언을 주시면 큰 도움이 될 것입니다. 감사합니다!
이 문제를 해결하는 데 도움을 주실 수 있나요?
플러그인 아웃렛 테마 구성 요소를 사용하면 커스터마이징을 구축하기 위해 어떤 아웃렛을 사용해야 하는지 알려줍니다.
after-topic-list-item 아웃렛을 원하시는 것 같습니다.
Developing Discourse Themes & Theme Components
Theme Developer Quick Reference Guide
Beginner's guide to using Discourse Themes
Developing Discourse Plugins - Part 1 - Create a basic plugin
이 커스터마이징 구축에 대한 개발 도움이 필요하시다면 Marketplace 카테고리를 사용하시는 것을 추천합니다. ![]()
@Lilly 감사합니다. 사실, 각 주제별로 제3자 API에서 가져온 데이터를 표시하려고 합니다. 이를 위해 목록 페이지에서 데이터가 로드될 때 제3자 API를 호출하는 방법을 찾고 있습니다.
즉, 페이지가 로드되면 API를 호출한 후 데이터를 렌더링해야 합니다. 현재는 목록 데이터를 모두 수집한 뒤 제3자 API를 호출하고, 반환된 데이터를 DOM에 단순히 추가하고 있습니다. 하지만 주제 목록 페이지의 지연 로딩(lazy load) 시점에 데이터를 가져오도록 하려고 합니다.
일반적으로 이는 좋지 않은 아이디어입니다. API를 제공하는 호스트가 느리면 포럼도 느려집니다. API를 제공하는 호스트가 다운되면 포럼도 다운됩니다. 포럼에 과부하가 걸리면 API에도 과부하가 걸립니다.
데이터를 비동기적으로 로드하여, 예를 들어 sidekiq 작업에서 처리한 후 주제와 함께 저장해야 합니다.
@RGJ 님, 메시지 주셔서 감사합니다!
나쁜 아이디어라는 건 알지만, 저는 Discourse를 처음 사용해서 이에 대해 많이 알지 못했습니다. 이제 말씀해 주신 대로 Sidekiq 작업을 찾아보겠습니다.
한 가지 더 질문이 있습니다. Sidekiq 작업이 주제 목록 페이지에 새로운 데이터가 들어오는지 알아차릴 수 있을까요? 아니면 목록 페이지가 더 많은 데이터를 로드한다는 걸 작업에 알리기 위해 다른 방식으로 처리해야 하나요?
감사합니다!
Sidekiq 작업은 페이지 목록이 더 많은 데이터를 로드하는지 여부에 대해 알 수 없습니다. 이는 독립적입니다.
Sidekiq 작업을 통해 API를 사용하여 데이터를 주기적으로 로드하고, 이를 주제와 함께 저장하도록 합니다.
그런 다음 주제 목록이 로드될 때 저장된 데이터를 가져오면 됩니다. 이를 캐싱 메커니즘으로 생각하면 됩니다.
알겠습니다.
@RGJ님, 정말 감사합니다!