404 Publicar contenido en Desire2Learn

Tengo una compilación básica de la aplicación Valence para Desire2Learn y ahora estoy intentando publicar datos y recibo un error 400 o 404.

Si hago unSolicitud GET a / d2l / api / le / (D2LVERSION: version) / (D2LID: orgUnitId) / content / root /, con el orgUnitId correcto, puedo ver todo el contenido de un curso. Sin embargo, cuando yoENVIAR a ContentObjectData de tipo Module, devuelve un 400. Los documentos no tienen nada en la lista para un error 400 para esa solicitud en particular, pero supongo que estropeé el ContentObjectData. Lo he intentado varias veces, pero siempre da como resultado un 400. El bloque JSON tiene este aspecto: {"Título": "Prueba de API", "ShortTitle": "", "Tipo": 0, "ModuleStartDate": null , "ModuleEndDate": null, "IsLocked": false, "IsHidden": true}

Si hago unOBTENER Solicito a / d2l / api / le / (D2LVERSION: version) / (D2LID: orgUnitId) / content / modules / (D2LID: moduleId) / structure /, con el orgUnitId correcto y moduleId, puedo ver el contenido del módulo. Cuando yoENVIAR un ContentObjectData de tipo Topic, devuelve un 404. Estoy haciendo esto en Python, que no tiene un código SDK de muestra dado, así que convertí el código PHP.

He estado usando otro bloque JSON con una clave 'Url' y luego el valor respectivo. Aquí está el cuerpo multiparte totalmente codificado que he estado intentando POST:

<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>

¿Por qué el mismo URI para GET y POST resultaría en un 404 solo para POST? No parece que la estructura sea diferente entre las dos llamadas en los documentos. Intenté esta llamada como una solicitud POST normal y como la multiparte, pero ambas resultan en una 404. He intentado ambas de estas llamadas usando 3 usuarios diferentes, uno con privilegios de administrador completos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta