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' );
我开发了一个 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' );