如果我不对数据库执行 CRUD 操作,我应该使用 Web 服务吗?

问题描述 投票:0回答:2

我正在编写一个简单的实时搜索块插件。我通过 API 访问外部网站的资源,并显示与用户键入的搜索内容相匹配的结果。 我计划编写一个网络服务来执行此操作。我将把用户输入作为 ajax.call 中的参数之一传递,然后我的 Web 服务函数将返回建议的结果。 我想知道是否有必要使用网络服务,因为我没有从 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')
  }

}
php ajax web-services moodle moodle-api
2个回答
1
投票

Moodle 中的每个 ajax 调用都不需要有 Web 服务,除非你能很好地处理异常和功能。 您可以使用常规 XML HttpRequest 来获取数据。


0
投票

寻找居住在阿根廷且具有 MOODLE 经验的 PHP 程序员。请将您的简历发送至 [email protected]

© www.soinside.com 2019 - 2024. All rights reserved.