404 Posten von Inhalten in Desire2Learn

Ich habe eine grundlegende Valence-App für Desire2Learn erstellt und versuche nun, Daten zu POSTEN. Es wird entweder ein 400- oder ein 404-Fehler angezeigt.

Wenn ich einen macheGET Anfrage to / d2l / api / le / (D2LVERSION: version) / (D2LID: orgUnitId) / content / root / Mit der richtigen orgUnitId kann ich den gesamten Inhalt eines Kurses anzeigen. Als ich jedochPOST a ContentObjectData vom Typ Module gibt es eine 400 zurück. In den Dokumenten ist nichts für einen 400-Fehler für diese bestimmte Anforderung aufgeführt, aber ich gehe davon aus, dass ich die ContentObjectData durcheinander gebracht habe. Ich habe es mehrmals versucht, aber es führt immer zu einer 400. Der JSON-Block sieht folgendermaßen aus: {"Title": "API Test", "ShortTitle": "", "Type": 0, "ModuleStartDate": null , "ModuleEndDate": null, "IsLocked": false, "IsHidden": true}

Wenn ich einen macheERHALTEN Anfrage an / d2l / api / le / (D2LVERSION: version) / (D2LID: orgUnitId) / Inhalt / Module / (D2LID: moduleId) / Struktur /, mit der korrekten orgUnitId und moduleId kann ich den Inhalt des Moduls sehen. Wenn ichPOST Bei einem ContentObjectData-Objekt vom Typ Topic wird ein 404-Wert zurückgegeben. Dies geschieht in Python, für das kein SDK-Beispielcode angegeben wurde. Daher habe ich den PHP-Code konvertiert.

Ich habe einen anderen JSON-Block mit einem Schlüssel 'Url' und dann dem entsprechenden Wert verwendet. Hier ist der vollständig codierte mehrteilige Body, den ich zu POSTEN versucht habe:

<code>    --redacted.132.0.68062.1336325296.611.1
    Content-Disposition: form-data; name="ContentObjectData"
    Content-Type: application/json

    {"StartDate": null, "IsLocked": false, "TopicType": 3, "ShortTitle":
"", "Title": "API Test", "Url": "http://redacted.edu",
"EndDate": null, "IsHidden": true, "Type": 1}
    --redacted.132.0.68062.1336325296.611.1
    Content-Type: application/json

    {"Url": "http://redacted.edu"}
    --redacted.132.0.68062.1336325296.611.1--
</code>

Warum würde derselbe URI für GET und POST nur für POST zu einem 404 führen? Es sieht nicht so aus, als ob sich die Struktur zwischen den beiden Aufrufen in den Dokumenten unterscheidet. Ich habe diesen Aufruf als normale POST-Anforderung und als Multipart-Anforderung versucht, aber beide führen zu einem 404. Ich habe beide Aufrufe unter Verwendung von 3 verschiedenen Benutzern versucht, von denen einer über die vollständigen Administratorrechte verfügt.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage