Обязательные параметры API Discourse для обновления категории

Почему атрибуты name, color и text_color являются обязательными для маршрута обновления категории
(Discourse API Docs)?

Кажется, что атрибуты, такие как 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
)

Очевидно, что я не всегда знаю и название категории. Мне определённо нужно сначала найти его перед обновлением.

Было бы удобно, если бы эти параметры не были обязательными. Или, может быть, можно добавить какой-то синтаксис, чтобы указать: «Я не хочу менять это поле»? Например, если передать _, то атрибут останется со своим текущим значением. (Я не знаю, почему эти поля обязательны, поэтому просто предлагаю идеи, которые могут оказаться полезными, а могут и нет.)

Я согласен. Я не думаю, что поля цветов должны быть обязательными при обновлении. Скорее всего, они не должны быть обязательными и при создании. Я изучу этот вопрос и посмотрю, что можно улучшить.

Я только что выкатил обновление для этого :slight_smile:

При создании категории поле «Название» по-прежнему обязательно, но при обновлении категории больше не нужно указывать название, цвет и цвет текста вместе с тем свойством, которое вы хотите изменить.