API: 카테고리 생성 시 설명에 추가 정보 삽입/추가하기

Discourse API 요청을 사용하여 카테고리를 생성하고 있으며, 같은 과정에서 카테고리 설명(description)에 텍스트나 URL 참조 등을 추가하고 싶습니다. (아니면 속성이나 차이점을 파악하는 과정에서 description_text인 걸까요?)

또한 여기에 "로봇"이 추가할 수도 있으므로 가장 좋은 방법은 다음과 같습니다…

  1. 카테고리 생성 (동작 중)
  2. 카테고리를 업데이트하거나, 더 정확히 말하면 링크를 category.description 또는 category.description_text에 추가(append)하는 것)

그러나 업데이트 시 name, color, text_color 외에는 다른 속성이 없습니다. 그렇다면 보낼 수 있는 다른 속성이 있을까요? 예를 들어 description 또는/아마도 description_text 같은 것(그리고 어느 것이 맞는지는)이 있을까요?

제가 하고 싶은 것은 단순히 생성 중인 카테고리와 관련된 사이트의 슬러그(slug) 링크를 추가하는 것입니다… 또는 단순히 Discourse 카테고리 설명의 끝에 "[link][https/example.projectxxx"를 추가하는 것만입니다.

안녕하세요, Andrew.

문서에는 해당 3개의 속성만 나열되어 있지만, Response 객체에 언급된 대부분의 속성을 생성 호출 시 설정할 수 있습니다. 이름과 슬러그를 제외한 동일한 설정으로 대량의 카테고리를 스크립트로 생성해야 할 때 이 사실을 알게 되었습니다.

설정해야 했으며 일관되게 문제가 발생했던 유일한 속성은 권한입니다.

네, API 문서에 정의된 것과는 다른 속성들이 허용되고 있다는 점을 확인했습니다.

하지만 카테고리 '설명(description)'을 설정하는 방법은 매우 혼란스럽습니다. 카테고리 설명은 실제로 표시되는 내용과 전혀 다르기 때문입니다. 사실 카테고리 이름 아래에는 비어 있는 HTML 요소인 'cooked’가 있습니다. 그렇다면 이 값을 어떻게 설정해야 하는지 궁금합니다.

제가 파악한 바로는, 'About the --카테고리 이름-- …'라는 제목의 게시물을 작성해야 하고, 해당 카테고리에서 첫 번째 게시물이 되어야 한다고 생각합니다. 그러나 ‘cooked’ 값이나, 그곳에 먼저 게시물을 작성하는 봇(Bot)의 존재와 같은 다른 기준들도 있을 것 같습니다.

제 게시물이 위에 나타나도록 created_at/updated_at 날짜를 조정하여 카테고리가 해당 설명을 가져오거나 사용하게 시도해 보았지만, 성공하지 못했습니다! 'cooked’와/또는 카테고리 설명에 대해 제가 이해하지 못하는 부분이 있는 것 같습니다. 매우 혼란스럽고 관련 문서를 찾지 못했지만 계속 찾아볼 것입니다. 시도해 볼 아이디어가 있으시면 알려주세요.

안녕하세요, 오래된 주제를 다시 꺼내 봅니다..
description_text와 description의 차이가 뭔지 알 수 있는 방법이 있을까요?
직접 해보면서 알아내는 것 말고요 :slight_smile:
아마 @alank 님이 이제쯤은 알아냈을지도 모르겠네요!
감사합니다!

다른 곳에서 문서화되어 있지 않다면, discourse 저장소의 스펙 파일 내에서 검색하면 프로그래밍 언어 작동 방식에 대한 기본적인 이해를 바탕으로 이러한 질문에 답할 수 있습니다.

이 경우, 카테고리 스펙의 다음 줄들은 description_text가 description에서 파생되며 description을 설정한 직후 바로 사용 가능하다는 것을 보여줍니다.

이는 description이 설명의 원시 문자열(raw string)이며, 설정 시 조리(cooked)되어 description_text에 할당된다는 것을 의미합니다. 또는 description_text가 접근될 때 계산될 수도 있지만, 저는 그렇게 생각하지 않습니다. 어쨌든 설정해야 할 것은 description입니다.

Simon, 두 매개변수 사이의 차이를 명확히 해줘서 감사합니다.

하지만 방금 시도해 본 결과, 두 매개변수 중 어느 것도 카테고리 설명(또는 About 카테고리 게시물)에 실제로 설정되어 있지 않았습니다. 따라서 OP의 문제는 여전히 남아 있습니다.

추가: categories.json 파일에서 이 설명 매개변수들이 제가 원하는 것임을 확인했지만, API를 통해 이를 설정하는 방법을 모르겠습니다!

POST 요청 페이로드에 대해 문서화되지 않은 경우, 우연히 작동하더라도 그렇게 설정할 수 있다고 신뢰할 수 없습니다.

카테고리를 생성한 후 응답의 topic_url을 확인한 다음, 해당 URL에서 ID를 가져와 단일 토픽을 가져오는 것이 해결책일 것 같습니다. 응답의 post_stream을 확인해 보세요. 여기에는 게시글 배열이 있으며, 아마도 하나의 요소가 있을 것입니다.

해당 게시글의 ID를 가져온 후 단일 게시글을 업데이트하여 설명을 추가하세요. 그러면 Discourse에서 게시글을 편집하는 것과 동일한 방식으로 카테고리 설명이 업데이트되며, 첫 번째 줄 규칙도 동일하게 적용됩니다.

방금 게시하려고 했는데, 정확히 그렇게 했어요 :slight_smile:

    ## 카테고리 생성
    ret_cat = client.create_category(name, color = color, **kwargs)

    ## 첫 번째 게시글 ID 가져오기 
    cat_id = ret_cat["category"]["id"]
    print("Cat id", cat_id)
    topics = client.category_topics(cat_id)
    first_post_id = client.topic_posts(topics["topic_list"]['topics'][0]["id"])['post_stream']['posts'][0]['id']
    ## 첫 번째 게시글 수정
    ret_post = client.update_post(first_post_id, cat["about_msg"],"set up")