Manual:ApiResult.php

From mediawiki.org
Jump to navigation Jump to search
This page is a translated version of the page Manual:ApiResult.php and the translation is 100% complete.
Other languages:
Deutsch • ‎English • ‎español • ‎français • ‎polski • ‎العربية • ‎中文 • ‎日本語

La ApiResult clase representa el resultado del API operaciones.

Sencillamente envuelve una estructura array anidada(), añadiendo algunas funciones para simplificar las modificaciones del array. Cuando varios módulos ejecutan, añaden piezas diferentes de información a este resultado, estructurándolo como será dado al cliente.

Cada subarray tampoco puede ser un diccionario-clave-valor con pares de claves únicas, o listas, donde los elementos están añadidos utilizando $data[] = $value notation.

Hay dos valores clave especiales que cambian la forma en que la salida XML se genera:

  • '_element' - Esta clave conjunta el nombre de la etiqueta para el resto de los elementos en la matriz actual. Solo se inserta si el formateador devuelve cierto para getNeedsRawData()
  • '*' - Esta clave tiene un significado especial solo para el formateador XML, y es salida como es para todos los demás. En XML deviene el contenido del elemento actual.

Funciones

addValue()

addValue ( $path, $name, $value, $flags = 0 )

Añade valor al dato de salida en la ruta dada.

Ruta puede ser una matriz indexada, cada elemento especifica la rama a la que añadir el nuevo valor. Ajustar $path a array('a','b','c') es equivalente a datos ['a']['b']['c'] = $value. Si $path es nulo, el valor será insertado en la raíz de dato. Si $name está vacío, el $value se añade como un siguiente dato de elemento de lista[] = $value.

Ejemplo

class ApiFoo extends ApiBase {
	public function execute() {
		$apiResult = $this->getResult();
		$r['result'] = 'Success';
		$r['bar'] = 'baz';
		$apiResult->addValue( null, $this->getModuleName(), $r );
	}

	public function getResultProperties() {
		return array(
			'foo' => array(
				'result' => array(
					ApiBase::PROP_TYPE => array(
						'success',
						'warning',
						'needtoken'
					)
				),
				'bar' => array(
					ApiBase::PROP_TYPE => 'string',
					ApiBase::PROP_NULLABLE => true
				),
			)
		);
	}
}

Véase también