Должен ли я использовать веб-сервис, если я не выполняю операции CRUD на БД? - PullRequest
0 голосов
/ 27 мая 2019

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

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

//the ajax call
ajax.call([{
    methodname: 'block_xxxx_loadpages',
    args: {userinput: userinput},}])


// the webservice function

class block_xxxx_external extends external_api {

  //parameters
  public static function loadpages() {
    return new external_function_parameters (
      array('userinput' => new external_value(PARAM_TEXT, 'the user input'))
    );
  }

  //the function
  public static function loadpages($userinput = 'userinput') {

    //parameter validation
    $params = self::validate_parameters(self::hello_world_parameters(),
    array('userinput' => $userinput));

    //connect to api and return the result page matching the userinput

    return $result;

  }

  public static function loadpages_returns() {
    return new external_value(PARM_TEXT, 'the result')
  }

}

1 Ответ

1 голос
/ 06 июня 2019

Необязательно иметь веб-сервис для каждого вызова ajax в Moodle, если вы не обрабатываете исключения и возможности хорошо.Вы можете использовать обычный XML HttpRequest для получения данных.

...