Discourse API 'update category' 필수 매개변수

카테고리 업데이트 라우트(Discourse API Docs)에서 name, color, text_color 속성이 필수인 이유는 무엇인가요?

slug와 같은 속성은 다른 속성을 지정하지 않고도 업데이트할 수 있어야 할 것 같습니다.

나도 이 부분이 약간 거슬립니다. 카테고리의 다른 정보를 업데이트할 때, 반드시 해당 카테고리의 color와 text_color를 알 필요은 없거든요. 그래서 선택지는 둘 중 하나입니다. 둘 다 무해한 값으로 변경하거나, 먼저 그 정보를 수집하기 위해 API 호출을 한 번 더 추가하는 것 말이죠. discourse_api gem을 사용한 예시는 다음과 같습니다:

response = client.categories

cat = response.find {|e| e['name'] == 'Category Name'}

response = client.update_category(
  id: cat['id'],
  name: cat['name'],
  color: cat['color'],
  text_color: cat['text_color'],

  # 실제로 업데이트하려는 속성을 아래에 추가
  parent_category_id: 7, # #7 아래에 여러 카테고리를 중첩하고 있습니다
)

물론 카테고리 이름도 항상 알지는 못합니다. 카테고리를 업데이트하기 전에 반드시 그 이름을 조회해야 합니다.

해당 파라미터들이 필수 사항이 아니었다면 편했을 텐데 싶습니다. 또는 "해당 필드를 변경하지 않겠다"는 신호를 보낼 수 있는 semacam 문법이 있다면 어떨까요? 예를 들어 _를 전달하면 해당 속성을 현재 값으로 설정하는 식이요. (필수 필드가 있는 이유에 대해 정확히 알지 못하므로, 유용할 수도, 아닐 수도 있는 아이디어를 던져 봅니다.)

동의합니다. 업데이트 시 색상 필드를 필수로 지정하는 것은 적절하지 않다고 생각합니다. 생성 시에도 필수 필드로 지정하지 않는 것이 더 나을 것 같습니다. 이 부분을 살펴보고 개선할 수 있는 점이 있는지 확인해 보겠습니다.

방금 업데이트를 푸시했습니다 :slight_smile:

카테고리를 생성할 때는 이름 필드가 여전히 필수이지만, 카테고리를 업데이트할 때는 업데이트하려는 실제 속성 외에 이름, 색상, 텍스트 색상을 지정할 필요가 없습니다.