使用 Perl 的 RESTful API 用法範例

下列 Perl 範例顯示如何進行設定以開始與系統互動。 緊接在範例後面的是 Perl 函數呼叫,這些函數呼叫會匯入範例檔案、指定目標 IP 位址、擷取鑑別記號,最後使用鑑別記號對系統目標執行動作。

請參閱 Spectrum Virtualize RESTful API 以檢視 Python 3 語言範例,或參閱使用 CURL 的用法範例以檢視使用 curl 指令行公用程式的範例。

註: 斜體的值代表您提供的值。
假設下列檔案命名為 rest_perl.pl。此檔案中包含的函數,可用於建構 HTTP 要求並從回應中傳回 JSON 資料。這些函數可以匯入,亦可複製並貼到 Perl Script 的頂端。
#!/usr/bin/perl -w use strict;
use warnings;
use HTTP::Request; use HTTP::Headers; use LWP::UserAgent; use JSON::PP;
my $ua = LWP::UserAgent->new(ssl_opts => { SSL_verify_mode => 'SSL_VERIFY_NONE' }j;
sub command{
my($host, $target, $method, $header_ref, $data_ref) = @_;
my $data_json = %{$data_ref} ? encode_json($data_ref) : "";
my $request = HTTP::Request->new($method => 
   "https://$host:7443/$target", HTTP::Headers->new(%{$header_ref}), $data_json);
$request->header(Content_Type => 'application/json');
my $response = $ua->request($request);
return decode_json($response->content);
}
如果是匯入此檔案,請在另一個 Perl Script 或 Perl 除錯器中使用下列行:
do “rest_perl.pl”;
指定所需目標節點的節點 IP 位址:
$host = “system_IP_address”;
提供鑑別資訊以建立要在未來指令中使用的記號:
$token = command($host,
'API_version/auth',
'POST',
{"X-Auth-Password" => "password", "X-Auth-Username" => "username"}, {})->{"token"};
如果要建立陣列,請併入 POST 方法、目標、JSON 參數以及新建立的記號,如下列範例中所示:
$out = command($host,
'1.0/array',
'POST',
{"X-Auth-Token" => $token}, {raid_level => "raid5"});