Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Enviar una solicitud POST a la API de REST

Use una solicitud HTTP POST para enviar una o varias solicitudes RPC a la API de REST. Puede utilizar la solicitud POST para configurar el dispositivo.

Para un solo rpc comando, el formato general de los extremos es:

scheme://device-name:port/rpc/method[@attributes]/params

  • scheme: o bien httphttps

  • method: el nombre de cualquier comando de Junos OS rpc . El method nombre es idéntico al elemento de etiqueta. Para obtener más información, consulte el Explorador de API XML de Junos.

  • params: valores de parámetros opcionales (name[=value]).

Para autenticar su solicitud, puede utilizar uno de los métodos siguientes. Recomendamos usar la netrc opción porque es más segura.

  • Envíe el nombre de usuario y la contraseña codificados en base64 incluidos en el encabezado Autorización.

  • Como alternativa, utilice un archivo .netrc para almacenar las credenciales.

    1. En el directorio principal del usuario, cree el archivo .netrc y especifique el nombre de host, el nombre de usuario y la contraseña del dispositivo remoto. Por ejemplo:

    2. Asegúrese de que solo el usuario tiene permiso de lectura y escritura para el archivo.

    3. En la solicitud, especifique la --netrc opción. Por ejemplo:

Para especificar rpc datos como una cadena de consulta en el URI para solicitudes POST, envíe los datos de consulta en el cuerpo de POST. En tales casos, puede especificar el Content-Type como text/plain o application/xml, como se muestra en estas llamadas cURL equivalentes:

Para comandos RPC únicos y múltiples, se pueden usar encabezados HTTP Accept para especificar el formato de retorno mediante uno de los siguientes valores de tipo de contenido:

  • application/xml (valor predeterminado)

  • aplicación/json

  • texto/sin formato

  • texto/html

Por ejemplo, la siguiente llamada cURL especifica un formato de salida de JSON:

También puede especificar el formato de salida utilizando el atributo opcional format :

Nota:

El tipo de contenido predeterminado para las solicitudes POST que contienen argumentos en el cuerpo es application/xml. Si desea utilizar cualquier otro contenido, como una cadena de consulta, puede especificar un tipo de contenido de texto/sin formato. Especifique el atributo en los comandos de format configuración.

Cuando se ejecutan varios rpc comandos en una sola solicitud, el formato general del extremo es:

scheme://device-name:port/rpc

Los RPC deben proporcionarse como datos XML en el cuerpo de POST. El tipo de contenido de la respuesta es multiparte/mixto, con límite y subtipo asociados a la salida de cada ejecución de RPC. El formato especificado en el encabezado Accept se utiliza como formato de salida para cada una de las RPC si les falta un format atributo. Si no especifica un encabezado Accept o el format atributo en un RPC determinado, el formato de salida predeterminado es XML.

Por ejemplo, para enviar una sola solicitud HTTP para ejecutar las RPC get-software-information y get-interface-information, envíe una solicitud POST a /rpc con "Auth: Basic <base64hash>", "Content-Type: application/xml". El cuerpo de POST contendría:

<get-software-information/><get-interface-information/>

Aquí hay una llamada cURL usando este cuerpo POST:

El resultado de la solicitud, que contiene XML como valor predeterminado, aparecerá como sigue:

También puede especificar el formato de salida para cada uno de los elementos del cuerpo POST. Por ejemplo, la siguiente solicitud emite JSON para la get-interface-information RPC y texto sin formato para la get-software-information RPC:

Al ejecutar varias RPC, si se produce un error, el comportamiento predeterminado es omitir el error y continuar con la ejecución. Si desea salir cuando se encuentre el primer error, especifique el stop-on-error indicador en el URI. Por ejemplo, la siguiente solicitud configura el dispositivo y finaliza si se encuentra un error: