Как вызвать PHP Moodle ("REST") API с HTTP GET и параметром массива в строке запроса URL - PullRequest
0 голосов
/ 21 января 2020

У меня есть приложение Spring Boot, которое подключается и вызывает API-интерфейс REST Moodle , которое больше похоже на RP C, чем REST

. вызвать функцию "mod_quiz_get_quizzes_by_courses", которая дополнительно определяет параметр (массив) с идентификаторами курса.

Похоже, существует множество различных и специфичных для фреймворка способов c, как параметр массива должен быть закодирован в строке запроса HTTP GET. Например:

  1. ¶mName = x, y, z
  2. ¶mName = x¶mName = y¶mName = z &
  3. ¶mName [] = x NmName [] = y¶mName [] = z &

Похоже, что для API Moodle работает только последний из них. Проблема в том, что он также работает правильно, только если квадратные скобки не закодированы следующим образом:

¶mName% 5B% 5D = x¶mName% 5B% 5D = y¶mName% 5B% 5D = z &

Если квадратные скобки закодированы, то, на мой взгляд, должно быть обычный случай, и Springs UriComponentsBuilder делает это автоматически, тогда я также получаю ошибку от конечной точки API, как и в других случаях; 1 и 2, например:

{"exception":"invalid_parameter_exception","errorcode":"invalidparameter","message":"Invalid parameter value detected"}

Есть ли лучший подход ... или как лучше всего вызывать API Moodle с параметром массива GET в строке запроса URL

...