MediaWiki API 扩展 JSON

MediaWiki API Extension JSON

我开发了一个 MediaWiki 扩展,它使用 cURL 从外部服务获取 (JSON) 字符串。

现在我正在寻找一种从 MediaWiki 系统中仅检索该字符串的方法。 (此 URL 将用于 AJAX 调用。)

首先,我认为 MediaWiki API 可以做到这一点。但是,我似乎不能只输出那个字符串。

实现这一目标的正确方法是什么?

更新

谢谢,成功了。供您参考,这是我的进展情况:

$this->getResult()->addValue(null, null, array( 'autocomplete' => array( 'server', 'servers' ) ) );

returns [{"autocomplete":["server","servers"]}]format=json 附加到 API URL。而不是上面的 JSON 字符串,我正在使用的 JavaScript 客户端需要 {"autocomplete":["server","servers"]} 才能正常工作。换句话说,我需要摆脱 [].

出于好奇,定制打印机是否仍然可行?

在您的 API 模块中,覆盖 getCustomPrinter():

public function getCustomPrinter() {
    return new ApiFormatRaw(
        $this->getMain(),
        $this->getMain()->createPrinterByName( 'json' )
    );
}

(嵌套的createPrinterByName()调用是为了在出现错误时回退格式,您可以将其更改为其他格式)

然后,在您的 execute() 方法中或您需要 return 值的任何地方:

$this->getResult()->addValue( null, 'text', $data_you_want_to_return );
$this->getResult()->addValue( null, 'mime', 'application/json' );