Ejecución de comandos REST

Hay varios programas que pueden ejecutar comandos REST. Para ejecutar el comando, llame al método en un recurso REST y pase los parámetros o una solicitud en formato JSON.
Nota: El uso de comandos REST requiere los mismos permisos que el uso de la interfaz web. Para obtener información sobre los permisos, consulte Roles y permisos.

Ejemplo: ejecutar comandos REST simples con curl

El programa curl de Linux es una forma sencilla de ejecutar comandos REST. Para ejecutar un comando REST, especifique la URL de uno de los recursos REST, especifique el método que se va a utilizar y añada parámetros. Por ejemplo, el siguiente comando curl recupera una lista de todos los componentes activos. El comando llama al método GET del recurso component y pasa el valor true al parámetro active:
curl -k -u admin:admin 
  https://hostname:port/cli/component?active=true 
  -X GET
Nota: Tiene que escribir este comando en una sola línea. Lo hemos dividido en líneas distintas para que resulte más claro.
Nota: Este ejemplo utiliza el conmutador -k para conectarse al servidor de forma no segura. Para configurar la autenticación, consulte Autenticación de comandos REST.
Utilice el nombre de host y el puerto de servidor para hostname y port. Por ejemplo, si el nombre de host es ucdeploy.example.org y el puerto es el valor predeterminado 8443, el comando curl tendría el siguiente aspecto:
curl -k -u admin:admin 
  https://ucdeploy.example.org:8443/cli/component?active=true 
  -X GET
La respuesta de este comando es una lista JSONArray con todos los componentes que están activos en el servidor. Para ver un ejemplo de esta respuesta, consulte Get information about all components on the server.

Pasar parámetros a comandos REST

Muchos comandos REST tienen uno o varios parámetros. Para pasar estos parámetros, añádalos a la URL. Por ejemplo, el método GET del comando version/getLink toma tres parámetros: el nombre o identificador de la aplicación, el nombre o identificador de la versión y el nombre del enlace. Para conseguir un enlace en el componenteJPetStore-APP, el comando tendría que tener el siguiente aspecto:
curl -k -u admin:admin 
  "https://fit-vm13-108.rtp.raleigh.ibm.com:8443/cli/
  version/getLink?component=JPetStore-APP
  &version=1.0
  &linkName=IBM%20web%20site"
En este caso, cada parámetro y par de valores se añaden a la URL, después de un signo de interrogación (?). Cada par está separado por un signo ampersand (&). Como curl es un comando de Linux y el ampersand tiene un significado especial en la línea de comandos de Linux, la URL, incluidos los parámetros, se coloca entre comillas.
Nota: Todos los valores de parámetro tienen que estar codificados en URL. El ejemplo anterior pasaba el valor IBM web site como valor del parámetrolinkName. Para incluir este parámetro como parte de la URL, los espacios tienen que sustituirse por el valor cifrado de URL %20.

Pasar cadenas JSON a comandos

En el caso de comandos más complejos, tiene que enviar una cadena JSON o un archivo en lugar, o además, de los parámetros.
Por ejemplo, el método PUT del recurso application/create crea una aplicación. Para utilizar este comando, tiene que pasar una cadena JSON que especifique el nombre, la descripción y algunas propiedades de la aplicación nueva. La cadena JSON de este comando tiene que seguir la siguiente plantilla:
{
  "description": "Description",
  "enforceCompleteSnapshots": "Specify true to require 
     an explicit version for each component",
  "name": "Application name or ID",
  "notificationScheme": "Notification scheme"
}
Esta plantilla se incluye en la información de referencia del comando, consulte Create an application from a JSON file.
Por ejemplo, la siguiente cadena JSON representa una aplicación denominada My Application:
{
  "description": "My new application",
  "enforceCompleteSnapshots": "false",
  "name": "My Application",
  "notificationScheme": "Default Notification Scheme"
}
Para pasar esta cadena JSON al recurso application/create, puede guardar la cadena en un archivo o incluirla en el comando. por ejemplo, si guarda la cadena en un archivo llamado newApplication.json, el comando tendrá un aspecto similar al siguiente ejemplo:
curl -k -u admin:admin 
  https://fit-vm13-108.rtp.raleigh.ibm.com:8443/cli/application/create 
  -X PUT -d @newApplication.json
También puede pasar directamente la cadena al comando, como se muestra en el ejemplo siguiente:
curl -k -u admin:admin 
  https://fit-vm13-108.rtp.raleigh.ibm.com:8443/cli/application/create 
  -X PUT 
  -d {"description":"My new application",
      "enforceCompleteSnapshots":"false",
      "name":"My Application 67",
      "notificationScheme":"Default Notification Scheme"}

Componer cadenas JSON

Existen dos formas de obtener la plantilla de la cadena JSON para un comando. Las plantilla se incluyen en la información de referencia de cada comando. También puede ejecutar el comando del cliente de línea de mandados equivalente con la opción -t. Al ejecutar el comando CLI con esta opción se imprime la plantilla JSON.

Como la interfaz del servidor utiliza la API de REST, también puede iniciar sesión en el servidor de la forma habitual y supervisar las solicitudes que genera la aplicación web. Puede supervisar estas solicitudes con las extensiones del explorador web o con programas externos. Por ejemplo, para ver la serie JSON del método PUT del recurso resource/create, cree un recurso en el servidor web de la forma habitual y, a continuación, observe la serie JSON en la solicitud el explorador, tal y como se muestra en la siguiente imagen. La serie JSON de los mandatos REST es la misma o similar a esta serie.

Utilizar una extensión del explorador web para supervisar series JSON que utiliza el servidor

Respuestas

Tras un mandato correcto, la mayoría de mandatos devuelven un valor de serie simple o una serie JSON.
Además del resultado del comando, los comandos devuelven códigos de estado HTTP estándar. La siguiente lista incluye los códigos de estado más comunes que devuelve el comando REST.
200
El mandato se ha ejecutado correctamente.
400
  • No tiene permiso para ejecutar el mandato.
  • No ha especificado un parámetro necesario.
  • La vía de acceso del recurso de la URL no es correcta.
404
El objeto que intenta recuperar no existe.
405
El nombre de método HTTP no es correcto.
415
El tipo de contenido de la cabecera de petición no es correcto.
500
El servidor ha detectado un error.

Comentarios