我开发了一个MediaWiki扩展,使用cURL从外部服务获取(JSON)字符串。
现在我正在寻找一种从MediaWiki系统中检索该字符串的方法。 (此URL将用于AJAX调用。)
首先,我认为MediaWiki API就是这样做的。但是,我似乎无法输出该字符串。
实现这一目标的正确方法是什么?
更新
谢谢,这就是诀窍。为了您的信息,这里有多远:
$this->getResult()->addValue(null, null, array( 'autocomplete' => array( 'server', 'servers' ) ) );
将[{"autocomplete":["server","servers"]}]
附加到API网址时,会返回format=json
。我正在使用的JavaScript客户端需要{"autocomplete":["server","servers"]}
才能正常工作,而不是上面的JSON字符串。换句话说,我需要摆脱[
和]
。
出于好奇,自定义打印机还有可行吗?
答案 0 :(得分:2)
在您的API模块中,覆盖getCustomPrinter()
:
public function getCustomPrinter() {
return new ApiFormatRaw(
$this->getMain(),
$this->getMain()->createPrinterByName( 'json' )
);
}
(嵌套createPrinterByName()
调用是针对出现错误的后备格式,您可以将其更改为其他格式)
然后,在您的execute()
方法或需要返回值的任何地方:
$this->getResult()->addValue( null, 'text', $data_you_want_to_return );
$this->getResult()->addValue( null, 'mime', 'application/json' );