(Quick Reference)

PHP Code Samples

All of these examples make use of the cURL PHP Extension. While this library is easy to use for GET and POST requests, it is somewhat more difficult to use for PUT and DELETE requests. Each will be covered in this guide.

Notice the use of the JSON PHP Extension's json_decode and json_encode functions.

GET

<?php
$baseUrl = "http://localhost:8080/mws/rest";
$resource = "/jobs";
$username = "admin";
$password = "secret";

$ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_URL, "$baseUrl$resource");

$responseBody = curl_exec($ch); $responseInfo = curl_getinfo($ch); curl_close($ch);

if ($responseInfo["http_code"]!=200 && $responseInfo["http_code"]!=201) { print_r($responseInfo); echo $responseBody; } else { print_r(json_decode($responseBody)); } ?>

POST

<?php
$baseUrl = "http://localhost:8080/mws/rest";
$resource = "/jobs";
$username = "admin";
$password = "secret";
$requestPayload = array(
  "commandFile"=>"/tmp/test.sh",
  "initialWorkingDirectory"=>"/tmp",
  "user"=>"adaptive",
  "requirements"=>array(
      array("requiredNodeCountMinimum"=>1)
  )
);

$ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_URL, "$baseUrl$resource"); // Setup POST request curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestPayload)); curl_setopt($ch, CURLOPT_POST, 1);

$responseBody = curl_exec($ch); $responseInfo = curl_getinfo($ch); curl_close($ch);

if ($responseInfo["http_code"]!=200 && $responseInfo["http_code"]!=201) { print_r($responseInfo); echo $responseBody; } else { print_r(json_decode($responseBody)); } ?>

PUT

<?php
$baseUrl = "http://localhost:8080/mws/rest";
$resource = "/jobs/Moab.1";
$username = "admin";
$password = "secret";
$requestPayload = array(
  "holds"=>array("user")
);

$ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_URL, "$baseUrl$resource"); // Setup PUT request curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestPayload)); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "PUT");

$responseBody = curl_exec($ch); $responseInfo = curl_getinfo($ch); curl_close($ch);

if ($responseInfo["http_code"]!=200 && $responseInfo["http_code"]!=201) { print_r($responseInfo); echo $responseBody; } else { print_r(json_decode($responseBody)); }

DELETE

<?php
$baseUrl = "http://localhost:8080/mws/rest";
$resource = "/jobs/Moab.1";
$username = "admin";
$password = "secret";
$requestPayload = array(
  "holds"=>array("user")
);

$ch = curl_init(); curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC); curl_setopt($ch, CURLOPT_TIMEOUT, 10); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array("Content-Type: application/json")); curl_setopt($ch, CURLOPT_USERPWD, "$username:$password"); curl_setopt($ch, CURLOPT_URL, "$baseUrl$resource"); // Setup DELETE request curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "DELETE");

$responseBody = curl_exec($ch); $responseInfo = curl_getinfo($ch); curl_close($ch);

if ($responseInfo["http_code"]!=200 && $responseInfo["http_code"]!=201) { print_r($responseInfo); echo $responseBody; } else { print_r(json_decode($responseBody)); }