Приведенный ниже пример включает PHP-скрипт на основе библиотеки cURL, который выполняет запрос, и страницу, содержащую несколько примеров вызовов API на основе этого скрипта; включая авторизацию, получение списка платформ, получение списка устройств по платформам, создание расписания и группы уведомлений.

Этот скрипт содержит главную функцию запроса, основанную на библиотеке PHP cURL, которая вызывает методы API и отображает объект JSON в качестве результата.
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 />
Страница содержит примеры авторизации, перечисления ресурсов, создания устройств и простого управления группами уведомлений и шаблонами.
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 />