2015-08-05 3 views
0

Я разработал расширение MediaWiki, которое получает строку (JSON) из внешней службы с использованием cURL.Расширение API MediaWiki JSON

Теперь я ищу способ получить только эту строку из системы MediaWiki. (Этот URL-адрес будет использоваться для вызовов AJAX.)

Во-первых, я думал, что MediaWiki API - это способ сделать это. Тем не менее, я, похоже, не могу выводить только эту строку.

Что было бы правильным путем для достижения этой цели?

UPDATE

Спасибо, что сделал трюк. Для справки, вот как далеко я получил:

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

возвращается [{"autocomplete":["server","servers"]}] при добавлении format=json к URL API. Вместо приведенной выше строки JSON клиент JavaScript, с которым я работаю, нуждается в {"autocomplete":["server","servers"]}, чтобы работать правильно. Другими словами, мне нужно было избавиться от [ и ].

Просто из любопытства, является ли обычным принтером все еще путь?

ответ

2

В вашем модуле API, переопределяют :

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'); 
Смежные вопросы