Desire2Learn 用の基本的な Valence アプリ ビルドがあり、データを POST しようとすると、400 または 404 エラーが発生します。
/d2l/api/le/(D2LVERSION: version)/(D2LID: orgUnitId)/content/root/ に対して正しい orgUnitId を使用してGET 要求を行うと、コースのすべてのコンテンツを表示できます。ただし、モジュール型の ContentObjectDataをPOSTすると、400 が返されます。ドキュメントには、その特定の要求の 400 エラーについては何も記載されていませんが、ContentObjectData を台無しにしたと想定しています。複数回試しましたが、常に 400 になります。JSON ブロックは次のようになります: { "Title": "API Test", "ShortTitle": "", "Type": 0, "ModuleStartDate": null 、「ModuleEndDate」: null、「IsLocked」: false、「IsHidden」: true }
/d2l/api/le/(D2LVERSION: version)/(D2LID: orgUnitId)/content/modules/(D2LID: moduleId)/structure/ に対して正しい orgUnitId と moduleId を使用してGET要求を行うと、モジュールの内容。タイプ Topic の ContentObjectDataを POSTすると、404 が返されます。Python でこれを行っていますが、サンプル SDK コードが指定されていないため、PHP のものを変換しました。
キー「Url」とそれぞれの値を持つ別の JSON ブロックを使用しています。POSTしようとしている完全にエンコードされたマルチパート本文は次のとおりです。
--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--
GET と POST で同じ URI を使用すると、POST だけで 404 になるのはなぜですか? ドキュメント内の 2 つの呼び出しの間で構造が異なるようには見えません。この呼び出しを通常の POST 要求とマルチパートとして試しましたが、どちらも 404 になります。完全な管理者権限を持つ 3 人の異なるユーザーを使用して、これらの呼び出しの両方を試しました。