API:Formatos de dato

This page is a translated version of the page API:Data formats and the translation is 95% complete.

Entrada

La API toma su entrada a través de los parámetros proporcionados por la solicitud HTTP en formato application/x-www-form-urlencoded o multipart/form-data. (unlike REST API, the Action API currently does not support application/json input format.) Cada módulo y submódulo tiene su conjunto propio de parámetros, los cuales están listados en la documentación y en $ayuda. También pueden ser recuperados a través de action=paraminfo .

Codificando

Toda entrada debe ser válida UTF-8, en forma NFC. MediaWiki intentará convertir otros formatos, lo que puede provocar un error.

Parámetros de valores múltiples

Los parámetros que toman múltiples valores normalmente se envían con los valores separados usando el carácter de canalización (|), p.ej. param=value1|value2. Si un valor contiene el carácter de canalización en sí mismo, usa U+001F (Separador de unidades) como separador y antepón el valor con U+001F, p.ej. param=%1Fvalue1%1Fvalue2.

Si un parámetro acepta valores múltiples es listado explícitamente en la documentación de su módulo.

Parámetros booleanos

Si se especifica un parámetro booleano en una solicitud HTTP, se considera verdadero independientemente de su valor. Para un valor falso, omitir el parámetro por completo. La mejor manera de especificar un parámetro verdadero en una solicitud HTTP es usar "someParam"=; el = final, asegura que el navegador o la biblioteca HTTP no descarte el "vacío" "someParam".

Marcas de tiempo

Los parámetros que toman valores de marca de tiempo aceptan múltiples formatos de marca de tiempo:

Las marcas de tiempo siempre salen en formato ISO 8601.

Salida

El formato de salida estándar y predeterminado en MediaWiki es JSON. Todos los demás formatos están desaconsejados.

El formato de salida siempre debe especificarse usando format=yourformat, siendo yourformat uno de los siguientes:

  • json: JSON Formato. (Recomendado)
  • php: Formato PHP serializado (desaprobado)
  • xml: Formato XML (desaprobado)
  • txt: Formato PHP print_r() (eliminado en 1.27)
  • dbg: Formato PHP var_export() (eliminado en 1.27)
  • yaml: Formato YAML (eliminado en 1.27)
  • wddx: Formato WDDX (eliminado en 1.26)
  • dump: Formato PHP var_dump() (eliminado en 1.26)
  • none: Devuelve una respuesta en blanco. 1.21+

Ejemplo

Obtener la salida en JSON.

Respuesta

{
  "query": {
    "pages": {
      "217225": {
        "pageid": 217225,
        "ns": 0,
        "title": "Main page"
      }
    }
  }
}

A menos que se especifique, todos los módulos permiten la salida de datos en todos los formatos genéricos. Para simplificar la depuración, todos los formatos genéricos tienen alternativas de "impresión bonita en HTML" con un sufijo fm, p.ej. jsonfm.

Parámetros JSON

Los siguientes parámetros se pueden usar con format=json y format=jsonfm:

  • utf8: Codifica la mayoría (pero no todos) los caracteres no ASCII como UTF-8 en lugar de reemplazarlos con secuencias de escape hexadecimales. Type: boolean.
  • ascii: Codifica todos los caracteres no ASCII utilizando secuencias de escape hexadecimales. Type: boolean.
  • formatversion: El formato de salida. 1.25+
    • 1: Formato compatible con versiones anteriores, utiliza claves * para nodos de contenido, codifica caracteres no ASCII utilizando secuencias de escape hexadecimales.
    • 2: Formato moderno. Devuelve respuestas en un formato más limpio, codifica la mayoría de los caracteres

non-ASCII, caracteres como UTF-8. (recomendado)

  • callback: Response in the JSON format, by wrapping the result in a JavaScript function call. For security reasons, these responses ignore any browser session cookies and respond without information specific to a current logged-in user. This means the following features are disabled for safety:
    • Tokens No puede ser obtenido por lo que acciones de cambio de estado no son posibles.
    • El cliente es tratado como un usuario anónimo (es decir, no ha iniciado sesión) para todos los fines, incluso después de iniciar sesión a través de action=login . Esto significa que los módulos que requieren derechos adicionales no funcionarán, a menos que los usuarios anónimos puedan usarlos.

Notas adicionales

  • Los formatos de salida XML y PHP están obsoletos pero todavía se usan. Los clientes con escritos en PHP deben evitar usar el formato PHP porque es fundamentalmente inseguro. Está mantenido por ahora sólo debido a su popularidad.
  • Hay muchas bibliotecas de conversión y convertidores en línea para convertir respuestas JSON a otros formatos—por ejemplo, JSON-CSV convierte a valores-separados por comas .
  • Los módulos feed como Alimentar cambios recientes anulan el formato de salida estándar, en lugar de usar RSS o Atom, según lo especificado por su parámetro

feedformat. En esos casos, el formato especificado en el parámetro format solo se usa si hay un error.

Véase también