运行 REST 命令

许多不同程序都可以运行 REST 命令。要运行这种命令,请调用 REST 资源上的方法并以 JSON 格式传递参数或请求。
注: 使用 REST 命令与使用 Web 界面需要的许可权相同。有关许可权的信息,请参阅角色和许可权

示例:使用 curl 运行简单的 REST 命令

Linux 程序 curl 是运行 REST 命令的简单方式。要运行 REST 命令,请构造其中一个 REST 资源的 URL,指定要使用的方法,然后添加任何参数。例如,以下 curl 命令将检索所有活动组件的列表。该命令调用 component 资源的 GET 方法并传递参数 active 的值 true
curl -k -u admin:admin 
  https://hostname:port/cli/component?active=true 
  -X GET
注: 必须在一行上输入此命令。此处为了简明而将此命令拆分成不同行。
注: 此示例使用 -k 开关以非安全方式连接至服务器。要设置认证,请参阅进行认证以运行 REST 命令
使用您的服务器的主机名和端口替换 hostnameport。例如,如果主机名为 ucdeploy.example.org 并且端口是缺省值 8443,那么该 curl 命令可能类似于以下示例:
curl -k -u admin:admin 
  https://ucdeploy.example.org:8443/cli/component?active=true 
  -X GET
此命令的响应是服务器上所有活动组件的 JSONArray 列表。要查看此响应的示例,请参阅Get information about all components on the server

将参数传递到 REST 命令

许多 REST 命令具有一个或多个参数。要传递这些参数,请将其添加到 URL。例如,version/getLink 命令的 GET 方法接受三个参数:应用程序的名称或标识、版本的名称或标识以及链接的名称。为了获取 JPetStore-APP 组件上的链接,该命令可能类似于以下示例:
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"
在此示例中,每对参数和值在问号 (?) 后面附加到 URL。和号 & 分隔每个对。因为 curl 是 Linux 命令并且 & 符号对 Linux 命令行有特殊意义,所以将该 URL(包括参数)用引号括起。
注: 必须对所有参数值进行 URL 编码。上一个示例传递值 IBM web site 作为 linkName 参数的值。要包括此参数作为 URL 的一部分,必须将空格更改为 URL 编码值 %20

将 JSON 字符串传递到命令

对于更复杂的命令,必须发送 JSON 字符串或文件而不是参数,或者将它们连同参数一起发送。
例如,application/create 资源的 PUT 方法创建应用程序。要使用此命令,必须传递一个指定新应用程序的名称、描述、属性和某些属性的 JSON 字符串。此命令的 JSON 字符串必须遵循以下模板:
{
  "description": "Description",
  "enforceCompleteSnapshots": "Specify true to require 
     an explicit version for each component",
  "name": "Application name or ID",
  "notificationScheme": "Notification scheme"
}
此模板列示在命令的参考信息中;请参阅Create an application from a JSON file
例如,以下 JSON 字符串表示名为 My Application 的应用程序:
{
  "description": "My new application",
  "enforceCompleteSnapshots": "false",
  "name": "My Application",
  "notificationScheme": "Default Notification Scheme"
}
要将此 JSON 字符串传递到 application/create 资源,可以将该字符串保存到文件,也可以将其包括在命令中。例如,如果将该字符串保存到名 newApplication.json 的文件,那么该命令类似于以下示例:
curl -k -u admin:admin 
  https://fit-vm13-108.rtp.raleigh.ibm.com:8443/cli/application/create 
  -X PUT -d @newApplication.json
还可以将该字符串直接传递到命令,如下图中所示:
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"}

编写 JSON 字符串

获取命令的 JSON 字符串的模板有两种主要方式。每个命令的参考信息中都列示了模板。还可以运行带有 -t 选项的等价命令行客户机命令。运行带有此选项的 CLI 命令将打印 JSON 模板。

因为服务器界面使用 REST API,所以您可以照常登录服务器并监视 Web 应用程序生成的请求。可以使用 Web 浏览器扩展或外部程序监视这些请求。例如,要查看 resource/create 资源的 PUT 方法的 JSON 字符串,请照常在 Web 服务器上创建资源,然后查看浏览器请求中的 JSON 字符串,如下图中所示。REST 命令的 JSON 字符串与此字符串相同或类似。

使用 Web 浏览器扩展来监视服务器使用的 JSON 字符串

响应

在命令运行成功后,大多数命令都会返回简单的字符串值或 JSON 字符串。
除了命令的结果之外,命令还会返回标准 HTTP 状态码。以下列表包括了 REST 命令返回的最常见状态码。
200
该命令已成功。
400
  • 您不具有运行该命令的许可权。
  • 您未指定必需参数。
  • URL 中的资源路径不正确。
404
您尝试检索的对象不存在。
405
HTTP 方法名称不正确。
415
请求头中的内容类型不正确。
500
服务器遇到错误。

反馈