L’exemple ci-dessous comprend un script PHP basé sur la bibliothèque cURL qui effectue une requête et une page contenant quelques exemples d’appels d’API basés sur ce script, notamment l’autorisation, l’obtention d’une liste de plates-formes, l’obtention d’une liste de périphériques par plate-forme, la création d’un calendrier et d’un groupe de notification.

Ce script contient une fonction de requête principale, basée sur une bibliothèque PHP cURL, qui appelle les méthodes de l’API et affiche un objet JSON comme résultat.
CODE:
<br />
[php]<br />
<encoded_tag_open />?php<br />
// constant Dotcom-Monitor API v.1 address<br />
$API_URL = ‘https://api.dotcom-monitor.com/config_api_v1/’;<br />
// $action – dynamic url part<br />
// $method – HTTP method<br />
// $data – POST data, ‘null’ for GET request<br />
function Request($action, $method, $data) {<br />
// accessing global variable<br />
global $API_URL;<br />
// setting request url (merging “constant” and “dynamic” part)<br />
$ch = curl_init($API_URL . $action);<br />
// setting HTTP method<br />
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method);<br />
// return string<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<br />
// igroring SSL certificate<br />
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<br />
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);<br />
// Cookie management<br />
curl_setopt($ch, CURLOPT_COOKIEFILE, ‘D:\PhpExample\cookie.txt’);<br />
curl_setopt($ch, CURLOPT_COOKIEJAR, ‘D:\PhpExample\cookie.txt’);<br />
// creating request header array<br />
$headers = array(‘Content-Type: application/json’);<br />
// checking if ‘POST’ method<br />
if($method === ‘POST’ &amp;&amp; $data != null)<br />
{<br />
// encode input data to json<br />
$data_string = json_encode($data);<br />
// setting POST data<br />
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);<br />
// setting content length header<br />
array_push($headers, ‘Content-Length: ‘ . strlen($data_string));<br />
}<br />
// setting headers<br />
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);<br />
// making request<br />
$result = curl_exec($ch);<br />
// closing connection<br />
curl_close($ch);<br />
// displaying response<br />
echo $result;<br />
// returning deserialized json data as object<br />
return json_decode($result);<br />
}<br />
?<encoded_tag_closed /><br />
[/php]<br />
La page contient des exemples d’autorisation, d’énumération des ressources, de création de dispositifs et de gestion simple des groupes et des modèles de notification.
CODE:
<br />
[php]<br />
<encoded_tag_open />!– including request function –<encoded_tag_closed /><br />
<encoded_tag_open />?php include ‘request.php’; ?<encoded_tag_closed /><br />
<encoded_tag_open />!DOCTYPE html<encoded_tag_closed /><br />
<encoded_tag_open />!– css styles to make page readable –<encoded_tag_closed /><br />
<encoded_tag_open />head<encoded_tag_closed /><br />
<encoded_tag_open />style type=”text/css”<encoded_tag_closed /><br />
.request<br />
{<br />
background-color: #D3DEE2;<br />
font-weight: bold;<br />
padding: 8px;<br />
}<br />
.response<br />
{<br />
background-color: #EFEFEF;<br />
border: 1px solid #1D4982;<br />
margin-bottom: 25px;<br />
overflow: auto;<br />
padding: 5px;<br />
}<br />
.monitor<br />
{<br />
float: left;<br />
width: 215px;<br />
overflow: hidden;<br />
text-overflow: ellipsis;<br />
height: 22px;<br />
}<br />
.radio_block<br />
{<br />
float: left;<br />
width: 100px;<br />
overflow: hidden;<br />
}<br />
.form_param<br />
{<br />
border-bottom: 1px solid #C0C0C0;<br />
padding-top: 10px;<br />
clear: both;<br />
font-weight: bold;<br />
overflow: hidden;<br />
margin-bottom: 5px;<br />
}<br />
fieldset { background-color: #F4F8FF; }<br />
fieldset legend {<br />
font-weight: bold;<br />
font-size: 1.2em;<br />
}<br />
<encoded_tag_open />/style<encoded_tag_closed /><br />
<encoded_tag_open />/head<encoded_tag_closed /><br />
<encoded_tag_open />body<encoded_tag_closed /><br />
<encoded_tag_open />h1<encoded_tag_closed /><encoded_tag_open />?php echo $API_URL; ?<encoded_tag_closed /><encoded_tag_open />/h1<encoded_tag_closed /><br />
<encoded_tag_open />!– Performing Log on and displaying result –<encoded_tag_closed /><br />
<encoded_tag_open />div class=”request”<encoded_tag_closed />Log on<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”response”<encoded_tag_closed /><br />
<encoded_tag_open />?php<br />
$credentials = array(“UserName” =<encoded_tag_closed /> “your_username”, “Password” =<encoded_tag_closed /> “your_password”);<br />
Request(‘login’, “POST”, $credentials); // making login request with credentials (authorization)<br />
?<encoded_tag_closed /><br />
<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />!– Requesting platforms information and displaying result –<encoded_tag_closed /><br />
<encoded_tag_open />div class=”request”<encoded_tag_closed />Get platforms<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”response”<encoded_tag_closed /><br />
<encoded_tag_open />?php<br />
// get all platforms<br />
$result = Request(‘platforms’, “GET”, null);<br />
// adding received data into a variable for further usage<br />
$platforms = $result;<br />
?<encoded_tag_closed /><br />
<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />!– Requesting device list by each available platform and displaying result –<encoded_tag_closed /><br />
<encoded_tag_open />div class=”request”<encoded_tag_closed />Devices by platform<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”response”<encoded_tag_closed /><br />
<encoded_tag_open />?php<br />
// variable for any first ServerView device, if available<br />
$device_id = 0;<br />
// iterating through all platforms<br />
foreach ($platforms as &amp;$platform) {<br />
echo ‘<encoded_tag_open />strong<encoded_tag_closed />’ . $platform -<encoded_tag_closed /> Name . ‘<encoded_tag_open />/strong<encoded_tag_closed />:<encoded_tag_open />br /<encoded_tag_closed />’;<br />
//requesting devices for platfotm<br />
$result = Request(“devices/” . $platform -<encoded_tag_closed /> Name, “GET”, null);<br />
echo ‘<encoded_tag_open />br /<encoded_tag_closed />’;<br />
// checking for ServerView platform<br />
if ($platform -<encoded_tag_closed /> Id == 1)<br />
{<br />
$max = sizeof($result);<br />
for($i = 0; $i <encoded_tag_open /> $max; $i++)<br />
// get first id and break loop<br />
{<br />
$device_id = $result[$i];<br />
break;<br />
}<br />
}<br />
}<br />
echo ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
if ($device_id <encoded_tag_closed /> 0)<br />
{<br />
echo ‘<encoded_tag_open />div class=”request”<encoded_tag_closed />Edit device with id: ‘ . $device_id . ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />div class=”response”<encoded_tag_closed />Load:<encoded_tag_open />br /<encoded_tag_closed />’;<br />
// loading device by id<br />
$device = Request(“device/” . $device_id, “GET”, null);<br />
echo ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />div class=”response”<encoded_tag_closed />Save:<encoded_tag_open />br /<encoded_tag_closed />’;<br />
// changing device name from “device_name” to “device_name (edited)”<br />
$device -<encoded_tag_closed /> Name = $device -<encoded_tag_closed /> Name . ” (edited)”;<br />
// save edited device<br />
Request(“device/” . $device_id, “POST”, $device);<br />
echo ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
}<br />
?<encoded_tag_closed />
<encoded_tag_open />!– before we can create device, we have to receive required device properties –<encoded_tag_closed /><br />
<encoded_tag_open />h2<encoded_tag_closed />Create device<encoded_tag_open />/h2<encoded_tag_closed /><br />
<encoded_tag_open />div class=”request”<encoded_tag_closed />Locations for ServerView<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”response”<encoded_tag_closed /><encoded_tag_open />?php $locations = Request(‘locations/serverview’, “GET”, null); ?<encoded_tag_closed /><encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”request”<encoded_tag_closed />Frequencies for ServerView<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”response”<encoded_tag_closed /><encoded_tag_open />?php $frequencies = Request(‘frequencies/serverview’, “GET”, null); ?<encoded_tag_closed /><encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”request”<encoded_tag_closed />Get schedulers<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”response”<encoded_tag_closed /><encoded_tag_open />?php $schedulers = Request(‘schedulers’, “GET”, null); ?<encoded_tag_closed /><encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”request”<encoded_tag_closed />Get Notification Groups<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”response”<encoded_tag_closed /><encoded_tag_open />?php $groups = Request(‘groups’, “GET”, null); ?<encoded_tag_closed /><encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”request”<encoded_tag_closed />Get Filters<encoded_tag_open />/div<encoded_tag_closed /><br />
<encoded_tag_open />div class=”response”<encoded_tag_closed /><encoded_tag_open />?php $filters = Request(‘filters’, “GET”, null); ?<encoded_tag_closed /><encoded_tag_open />/div<encoded_tag_closed />
<encoded_tag_open />br /<encoded_tag_closed /><br />
<encoded_tag_open />!– listing previously requested data –<encoded_tag_closed /><br />
<encoded_tag_open />fieldset<encoded_tag_closed /><br />
<encoded_tag_open />legend<encoded_tag_closed />Create device<encoded_tag_open />/legend<encoded_tag_closed /><br />
<encoded_tag_open />form action=”example.php?create_device=true” method=”post”<encoded_tag_closed /><br />
<encoded_tag_open />?php<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Locations<encoded_tag_open />/div<encoded_tag_closed />’;<br />
foreach($locations as $location) {<br />
echo ‘<encoded_tag_open />div class=”monitor”<encoded_tag_closed /><encoded_tag_open />input type=”checkbox” name=”locations[]” value=”‘ . $location -<encoded_tag_closed /> Id . ‘” /<encoded_tag_closed />’ . $location -<encoded_tag_closed /> Name . ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
}<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Frequency<encoded_tag_open />/div<encoded_tag_closed />’;<br />
foreach($frequencies as $frequency) {<br />
echo ‘<encoded_tag_open />div class=”radio_block”<encoded_tag_closed /><encoded_tag_open />input type=”radio” name=”frequency” value=”‘ . $frequency . ‘” /<encoded_tag_closed />’ . $frequency . ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
}<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Filter<encoded_tag_open />/div<encoded_tag_closed />’;<br />
foreach($filters as $filter) {<br />
echo ‘<encoded_tag_open />div class=”radio_block”<encoded_tag_closed /><encoded_tag_open />input type=”radio” name=”filter” value=”‘ . $filter . ‘” /<encoded_tag_closed />’ . $filter . ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
}<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Scheduler<encoded_tag_open />/div<encoded_tag_closed />’;<br />
foreach($schedulers as $scheduler) {<br />
echo ‘<encoded_tag_open />div class=”radio_block”<encoded_tag_closed /><encoded_tag_open />input type=”radio” name=”scheduler” value=”‘ . $scheduler . ‘” /<encoded_tag_closed />’ . $scheduler . ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
}<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Notifications<encoded_tag_open />/div<encoded_tag_closed />’;<br />
foreach($groups as $group) {<br />
echo ‘<encoded_tag_open />input type=”checkbox” name=”notifications[]” value=”‘ . $group . ‘” /<encoded_tag_closed />’ . $group . ‘ – Time Shift: ‘;<br />
echo ‘<encoded_tag_open />input type=”text” name=”notification’ . $group . ‘” value=”10″ /<encoded_tag_closed /> min <encoded_tag_open />br /<encoded_tag_closed />’;<br />
}<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Device name<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />input type=”text” name=”device_name” value=”” /<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Notification email<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />input type=”text” name=”email” value=”” /<encoded_tag_closed />’;<br />
// POST handler for device creation<br />
if ($_POST &amp;&amp; !empty($_GET[‘create_device’])) {<br />
$notificationGroups = array();<br />
$locationsArray = array();<br />
if(!empty($_POST[‘notifications’])) {<br />
foreach($_POST[‘notifications’] as $check) {<br />
array_push( $notificationGroups, array(“Id” =<encoded_tag_closed /> intval($check), “Time_Shift_Min” =<encoded_tag_closed /> $_POST[‘notification’ . $check]));<br />
}<br />
}<br />
if(!empty($_POST[‘locations’])) {<br />
foreach($_POST[‘locations’] as $check) {<br />
array_push( $locationsArray, intval($check));<br />
}<br />
}<br />
// creating device object to be created<br />
$data = array(<br />
“Avoid_Simultaneous_Checks” =<encoded_tag_closed /> true,<br />
“False_Positive_Check” =<encoded_tag_closed /> false,<br />
“Send_Uptime_Alert” =<encoded_tag_closed /> false,<br />
“Platform_Id” =<encoded_tag_closed /> 1,<br />
“Locations” =<encoded_tag_closed /> $locationsArray,<br />
“Frequency” =<encoded_tag_closed /> intval($_POST[‘frequency’]),<br />
“Filter_Id” =<encoded_tag_closed /> intval($_POST[‘filter’]),<br />
“Scheduler_Id” =<encoded_tag_closed /> intval($_POST[‘scheduler’]),<br />
“Name” =<encoded_tag_closed /> $_POST[‘device_name’],<br />
“Notifications” =<encoded_tag_closed /> array(<br />
“E_Mail_Flag” =<encoded_tag_closed /> true,<br />
“E_Mail_Address” =<encoded_tag_closed /> $_POST[’email’],<br />
“Notification_Groups” =<encoded_tag_closed /> $notificationGroups<br />
)<br />
);<br />
echo ‘<encoded_tag_open />br /<encoded_tag_closed /><encoded_tag_open />br /<encoded_tag_closed /><encoded_tag_open />div class=”request”<encoded_tag_closed />Result<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />div class=”response”<encoded_tag_closed />’;<br />
Request(“devices?verb=PUT”, “POST”, $data); //creating device<br />
echo ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
}<br />
?<encoded_tag_closed /><br />
<encoded_tag_open />p<encoded_tag_closed /><br />
<encoded_tag_open />input type=”submit” value=”Create device” /<encoded_tag_closed /><br />
<encoded_tag_open />/p<encoded_tag_closed /><br />
<encoded_tag_open />/form<encoded_tag_closed /><br />
<encoded_tag_open />/fieldset<encoded_tag_closed /><br />
<encoded_tag_open />h2<encoded_tag_closed />Create scheduler<encoded_tag_open />/h2<encoded_tag_closed /><br />
<encoded_tag_open />fieldset<encoded_tag_closed /><br />
<encoded_tag_open />legend<encoded_tag_closed />Create scheduler<encoded_tag_open />/legend<encoded_tag_closed /><br />
<encoded_tag_open />form action=”example.php?create_scheduler=true” method=”post”<encoded_tag_closed /><br />
<encoded_tag_open />?php<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Name<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />input type=”text” name=”name” value=”” /<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Description<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />input type=”text” name=”description” value=”” /<encoded_tag_closed />’;<br />
if ($_POST &amp;&amp; !empty($_GET[‘create_scheduler’])) {<br />
// creating scheduler object<br />
$data = array(<br />
“Name” =<encoded_tag_closed /> $_POST[‘name’],<br />
“Description” =<encoded_tag_closed /> $_POST[‘description’],<br />
“Weekly_Intervals” =<encoded_tag_closed /> array(<br />
array(<br />
“Days” =<encoded_tag_closed /> array(“Su”, “Mo”, “Tu”, “We”, “Th”, “Fr”, “Sa”),<br />
“From_Min” =<encoded_tag_closed /> 0,<br />
“To_Min” =<encoded_tag_closed /> 1025,<br />
“Included” =<encoded_tag_closed /> true<br />
), array(<br />
“Days” =<encoded_tag_closed /> array(“Su”, “Sa”),<br />
“From_Min” =<encoded_tag_closed /> 0,<br />
“To_Min” =<encoded_tag_closed /> 1139,<br />
“Included” =<encoded_tag_closed /> false<br />
), array(<br />
“Days” =<encoded_tag_closed /> array(“Su”, “Mo”, “Fr”, “Sa”),<br />
“From_Min” =<encoded_tag_closed /> 120,<br />
“To_Min” =<encoded_tag_closed /> 240,<br />
“Included” =<encoded_tag_closed /> false<br />
)<br />
),<br />
“Date_Time_Intervals” =<encoded_tag_closed /> array(<br />
“From” =<encoded_tag_closed /> 1358712000000,<br />
“To” =<encoded_tag_closed /> 1358798400000<br />
)<br />
);<br />
echo ‘<encoded_tag_open />br /<encoded_tag_closed /><encoded_tag_open />br /<encoded_tag_closed /><encoded_tag_open />div class=”request”<encoded_tag_closed />Result<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />div class=”response”<encoded_tag_closed />’;<br />
Request(“schedulers?verb=PUT”, “POST”, $data); //making create request<br />
echo ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
}<br />
?<encoded_tag_closed /><br />
<encoded_tag_open />p<encoded_tag_closed /><br />
<encoded_tag_open />input type=”submit” value=”Create scheduler” /<encoded_tag_closed /><br />
<encoded_tag_open />/p<encoded_tag_closed /><br />
<encoded_tag_open />/form<encoded_tag_closed /><br />
<encoded_tag_open />/fieldset<encoded_tag_closed />
<encoded_tag_open />h2<encoded_tag_closed />Create notification group<encoded_tag_open />/h2<encoded_tag_closed /><br />
<encoded_tag_open />fieldset<encoded_tag_closed /><br />
<encoded_tag_open />legend<encoded_tag_closed />Create notification group<encoded_tag_open />/legend<encoded_tag_closed /><br />
<encoded_tag_open />form action=”example.php?create_group=true” method=”post”<encoded_tag_closed /><br />
<encoded_tag_open />?php<br />
echo ‘<encoded_tag_open />div class=”form_param”<encoded_tag_closed />Name<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />input type=”text” name=”name” value=”” /<encoded_tag_closed />’;<br />
if ($_POST &amp;&amp; !empty($_GET[‘create_group’])) {<br />
// creating notification group with requered fields<br />
$data = array(<br />
“Name” =<encoded_tag_closed /> $_POST[‘name’],<br />
“Scheduler_Id” =<encoded_tag_closed /> 0<br />
);<br />
echo ‘<encoded_tag_open />br /<encoded_tag_closed /><encoded_tag_open />br /<encoded_tag_closed /><encoded_tag_open />div class=”request”<encoded_tag_closed />Result<encoded_tag_open />/div<encoded_tag_closed />’;<br />
echo ‘<encoded_tag_open />div class=”response”<encoded_tag_closed />’;<br />
Request(“groups?verb=PUT”, “POST”, $data); //making request<br />
echo ‘<encoded_tag_open />/div<encoded_tag_closed />’;<br />
}<br />
?<encoded_tag_closed /><br />
<encoded_tag_open />p<encoded_tag_closed /><br />
<encoded_tag_open />input type=”submit” value=”Create notification group” /<encoded_tag_closed /><br />
<encoded_tag_open />/p<encoded_tag_closed /><br />
<encoded_tag_open />/form<encoded_tag_closed /><br />
<encoded_tag_open />/fieldset<encoded_tag_closed /><br />
<encoded_tag_open />/body<encoded_tag_closed /><br />
<encoded_tag_open />/html<encoded_tag_closed /><br />
[/php]<br />