Ich muss mithilfe der API massenhaft Gruppen erstellen

Hallo zusammen,

Ich muss über die API massenhaft Gruppen erstellen, aber das JSON akzeptiert keine Array mit mehreren Werten, es funktioniert nur, wenn ich eine Gruppe pro API-Aufruf erstelle.

Idealerweise möchte ich einen Erstellungsaufruf tätigen und die Namen als JSON-Array übergeben, aber das löst den Status aus:
500 (Internal Server Error)

Ich hatte erwartet, dass das Folgende funktionieren würde, aber es tut es nicht – Hilfe! Wir sprechen hier von über 200 Gruppen, ich verwende POST für https://{defaultHost}/admin/groups.json, genau wie die Dokumentation es vorschreibt.

{
  "group": [
    {
      "name": "X"
    },
    {
      "name": "Y"
    },
    {
      "name": "Z"
    }
  ]
}

Meiner Meinung nach heißt die Funktion createGroup und nicht createGroups. Dort steht, dass sie „eine Gruppe erstellt“ und nicht „so viele Gruppen erstellt, wie Sie möchten“.

Sie müssen die Werte selbst durchlaufen und die Funktion für jede hinzuzufügende Gruppe aufrufen. Wahrscheinlich möchten Sie entweder eine Verzögerung einbauen oder Code erstellen, der bei Erreichen von Ratenbegrenzungen einen erneuten Versuch startet.

1 „Gefällt mir“

@pfaffman Cool, Danke, ergibt Sinn!

~B

1 „Gefällt mir“

@pfaffman Es hat wie erwartet funktioniert, indem ich ein kleines Skript geschrieben habe, aber jetzt stehe ich vor einem weiteren Problem. Die API erlaubt nur “name” und nicht “full name”, sodass ich keine Möglichkeit habe, “full name” mit der create-Methode zu befüllen. Das einzig zulässige Feld “name” erlaubt auch keine Leerzeichen, sodass ich am Ende eine Menge von Gruppen mit leerem “full name” habe und “name” stattdessen “_” verwenden muss.

Idealerweise würde ich gerne “full name” zusätzlich zu “name” beim Erstellen von Gruppen über die API angeben können.

Danke
Boyan

Das ergibt keinen Sinn, da die API das ist, was das Frontend zum Erstellen von Gruppen verwendet. Da es möglich ist, vollständige Namen in der UX zu erstellen, können Sie sie auch in der API erstellen.

So funktionieren Gruppennamen.

Könnten Sie mir bitte zeigen, wo ich den vollständigen Namen angebe? Ich bin respektvoll anderer Meinung, dass die API vom Frontend verwendet wird, da ich den vollständigen Namen eindeutig über das Frontend bearbeiten kann, hier aber keinen vollständigen Namen sehe?

Entschuldigung. Ich dachte, ich hätte Sie auf Reverse-Engineering der Discourse-API hingewiesen. Ich empfehle entweder die Reverse-Engineering-Methode oder einen direkten Blick auf den Quellcode. Ich glaube nicht, dass jemand, der Discourse aktiv entwickelt, diese Dokumentation tatsächlich nutzt, daher vertraue ich nicht darauf, dass sie vollständig oder aktuell ist.