Почему я получаю ошибку 404 при создании темы со ссылкой?

Мы пытаемся импортировать содержимое класса из LaunchPad в Desire2Learn в определенном модуле. Вот что, по нашему мнению, должно произойти:

  1. Создайте ссылку.

POST в /d2l/api/le/1.3/lti/link/6720, где 6720 — это идентификатор организации, который возвращает идентификатор ссылки.

Это успешно.

  1. Создайте быструю ссылку.

POST в /d2l/api/le/1.3/lti/quicklink/6720/228, где 228 — это идентификатор ссылки, указанный выше.

Это успешно.

  1. Создайте тему со ссылкой.

POST в /d2l/api/le/1.3/6720/content/modules/638/structure/, где 638 — идентификатор родительского модуля, полученный из параметра LTI custom_links_import_service_url, параметра строки запроса parentNode и использования PublicUrl в ответе по быстрой ссылке вызов.

Это приводит к ошибке 404, что, согласно документации, предполагает проблему с идентификатором OU или родительского модуля.

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

Я пробовал другие советы здесь, в stackoverlow, и они не помогли, например: > 404 Публикация контента в Desire2Learn Ошибка 404 при попытке опубликовать файл в теме


person Scott Dickson    schedule 14.01.2014    source источник
comment
Является ли идентификатор вашего организационного подразделения 6720, который вы используете для этих вызовов, также значением свойства context_id LTI в запуске, из которого вы собираете параметр строки запроса custom_links_import_service_url и его parentNode?   -  person Viktor Haag    schedule 16.01.2014


Ответы (1)


Этот конкретный вызов, по-видимому, обеспечивает соблюдение типа содержимого application/json. Все другие API POST, которые я использовал, в порядке с text/plain. Только этот маршрут (пока что) выдает ошибку.

(Я также не уверен, что 404 является подходящей ошибкой для этого.)

Спасибо, Виктор за ваш комментарий, и да, и маршрут, и другие параметры из параметров LTI были правильными.

person Scott Dickson    schedule 15.01.2014
comment
Хорошо, что вы разобрались в вопросе; и спасибо за обратную связь вокруг этого звонка. Некоторые вызовы могут справиться с частью JSON, которая не имеет явного типа application\json, но другие не могут справиться. Чтобы быть в безопасности, вы всегда должны вводить части JSON (полное тело или части тела, состоящие из нескольких частей) как application\json. - person Viktor Haag; 16.01.2014
comment
Что касается почему 404, это хороший момент, и, вероятно, это особенность реализации серверной службы. Если при попытке веб-службы принять параметры вашего запроса и связать их с объектами данных для передачи обработчику на нижележащем уровне обработки службы возникает ошибка, это может привести к тому, что веб-служба отреагирует так, как если бы она не может найти обработчик, что приведет к ошибке 404 Not Found. - person Viktor Haag; 16.01.2014