Мне было любопытно, успешно ли кто-нибудь реализовал на Java маршрут в D2L с использованием Valance следующим образом:
PUT /d2l/api/le/(D2LVERSION: версия)/(D2LID: orgUnitId)/grades/(D2LID:gradeObjectId)/values/(D2LID: userId)
Я изо всех сил пытался получить 404 от этого звонка, когда я тщательно проверил, соответствуют ли требуемые идентификаторы моим записям в D2L. Когда я вхожу в D2L с учетной записью уровня инструктора, которую я использую в Java, я вижу, что там есть курс, тест и участники. Идентификаторы для них используются в коде Java для вызова указанного выше маршрута, но я получаю ошибку 404, а оценка не обновляется.
Вот фрагмент кода:
HttpURLConnection connection = null ;
try {
uri = userContext.createAuthenticatedUri ("/d2l/api/le/1.0/"+courseId+"/grades/"+gradeId+"/values/"+ userId, "PUT");
connection= (HttpURLConnection)uri.toURL().openConnection();
connection.setDoOutput(true);
connection.setRequestMethod("PUT");
connection.setRequestProperty("Content-Type", "application/json");
OutputStream os = connection.getOutputStream();
String updatedScore = "{\"GradeObjectType\":1,\"PointsNumerator\":\"5\"}";
os.write(updatedScore.getBytes());
os.flush();
}catch(Exception e){
e.printStackTrace();
}
Идентификатор курса, идентификатор класса и идентификатор пользователя передаются и проверяются в веб-интерфейсе D2L. Как видите, у меня создается строка JSON для GradeObjectType со значением 1 и PointsNumerator со значением 5. Существуют ли специальные разрешения, которые должна иметь эта учетная запись инструктора помимо разрешений учетной записи инструктора по умолчанию, чтобы разрешить такой вызов?
Любые мысли будут оценены. Спасибо