Merge pull request #644 from ralpheav/master
BUG 9855 REST services for ProcessMaker
This commit is contained in:
203
workflow/engine/methods/services/Rest/CRUD.java
Normal file
203
workflow/engine/methods/services/Rest/CRUD.java
Normal file
@@ -0,0 +1,203 @@
|
||||
// Main class to sent differen kind of messages to the http server
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
|
||||
// Enter CRUD memebers
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPut;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.client.methods.HttpDelete;
|
||||
|
||||
// Used to set JSON or XML messages request
|
||||
import org.apache.http.entity.StringEntity;
|
||||
|
||||
// Needed for response fetch goal
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.HttpEntity;
|
||||
import org.apache.http.util.EntityUtils;
|
||||
|
||||
/**
|
||||
* Single class containing functions to show how to use GET,POST,PUT,DELETE methods.
|
||||
*/
|
||||
public class CRUD
|
||||
{
|
||||
private static String m_user = "workflow"; // This member variable must be changed to its own dev workspace
|
||||
|
||||
private static void PostSample()
|
||||
{
|
||||
System.out.println("POST: Enter login params\n");
|
||||
|
||||
String loginParamsXML = "<?xml version='1.0'?>\n"
|
||||
+"<request>\n"
|
||||
+"<user>admin</user>\n"
|
||||
+"<password>admin</password>\n"
|
||||
+"</request>";
|
||||
String URI = "http://"+m_user+".pmos.colosa.net/rest/"+m_user+"/login/";
|
||||
|
||||
System.out.println( "Request: "+URI + "\n"+ loginParamsXML + "\n");
|
||||
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
HttpPost postRequest = new HttpPost(URI);
|
||||
try
|
||||
{
|
||||
StringEntity input = new StringEntity( loginParamsXML);
|
||||
input.setContentType("application/xml");
|
||||
postRequest.setEntity(input);
|
||||
HttpResponse httpResponse = httpClient.execute(postRequest);
|
||||
|
||||
HttpEntity responseEntity = httpResponse.getEntity();
|
||||
if( responseEntity != null)
|
||||
{
|
||||
String response = new String();
|
||||
response = EntityUtils.toString( responseEntity);
|
||||
System.out.println( "Response: " + response + "\n");
|
||||
}
|
||||
}
|
||||
catch( java.io.IOException x)
|
||||
{
|
||||
throw new RuntimeException("I/O error: " + x.toString());
|
||||
}
|
||||
}
|
||||
|
||||
private static void GetSample()
|
||||
{
|
||||
System.out.println("GET: Display TRANSLATION table row\n");
|
||||
|
||||
String URI = "http://"+m_user+".pmos.colosa.net/rest/"+m_user+"/TRANSLATION/LABEL/LOGIN/en/";
|
||||
System.out.println( "Request: " + URI + "\n");
|
||||
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
HttpGet getRequest = new HttpGet(URI);
|
||||
try
|
||||
{
|
||||
HttpResponse httpResponse = httpClient.execute(getRequest);
|
||||
|
||||
HttpEntity responseEntity = httpResponse.getEntity();
|
||||
if( responseEntity != null)
|
||||
{
|
||||
String response = new String();
|
||||
response = EntityUtils.toString( responseEntity);
|
||||
System.out.println( "Response: " + response + "\n");
|
||||
}
|
||||
}
|
||||
catch( java.io.IOException x)
|
||||
{
|
||||
throw new RuntimeException("I/O error: " + x.toString());
|
||||
}
|
||||
}
|
||||
|
||||
private static void AnotherPostSample()
|
||||
{
|
||||
System.out.println("POST: Insert new row in TRANLATION\n");
|
||||
|
||||
String URI = "http://"+m_user+".pmos.colosa.net/rest/"+m_user+"/TRANSLATION/";
|
||||
String newRow = "BUTTON/ESCAPE/en/sample/2012-05-05/";
|
||||
System.out.println( "Request: " + URI + " new row: " + newRow + "\n");
|
||||
URI = URI + newRow;
|
||||
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
HttpPost postRequest = new HttpPost(URI);
|
||||
try
|
||||
{
|
||||
HttpResponse httpResponse = httpClient.execute(postRequest);
|
||||
|
||||
HttpEntity responseEntity = httpResponse.getEntity();
|
||||
if( responseEntity != null)
|
||||
{
|
||||
String response = new String();
|
||||
if(response.isEmpty())
|
||||
{
|
||||
System.out.println( "Response: Status code: " + httpResponse.getStatusLine().getStatusCode()+ "\n");
|
||||
return;
|
||||
}
|
||||
response = EntityUtils.toString( responseEntity);
|
||||
System.out.println( "Response: " + response + "\n");
|
||||
}
|
||||
}
|
||||
catch( java.io.IOException x)
|
||||
{
|
||||
throw new RuntimeException("I/O error: " + x.toString());
|
||||
}
|
||||
}
|
||||
|
||||
private static void PutSample()
|
||||
{
|
||||
System.out.println("POST: Update a row in TRANLATION\n");
|
||||
|
||||
String URI = "http://"+m_user+".pmos.colosa.net/rest/"+m_user+"/TRANSLATION/";
|
||||
String index = "BUTTON/ESCAPE/en/";
|
||||
String updateData = "changesample/2011-07-06/";
|
||||
|
||||
System.out.println( "Request: " + URI + " index: " + index + " updateData: " + updateData + "\n");
|
||||
URI = URI + index + updateData;
|
||||
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
HttpPut putRequest = new HttpPut(URI);
|
||||
try
|
||||
{
|
||||
HttpResponse httpResponse = httpClient.execute(putRequest);
|
||||
|
||||
HttpEntity responseEntity = httpResponse.getEntity();
|
||||
if( responseEntity != null)
|
||||
{
|
||||
String response = new String();
|
||||
if(response.isEmpty())
|
||||
{
|
||||
System.out.println( "Response: Status code: " + httpResponse.getStatusLine().getStatusCode()+ "\n");
|
||||
return;
|
||||
}
|
||||
response = EntityUtils.toString( responseEntity);
|
||||
System.out.println( "Response: " + response + "\n");
|
||||
}
|
||||
}
|
||||
catch( java.io.IOException x)
|
||||
{
|
||||
throw new RuntimeException("I/O error: " + x.toString());
|
||||
}
|
||||
}
|
||||
|
||||
private static void DeleteSample()
|
||||
{
|
||||
System.out.println("DELETE: Remove a row in TRANLATION\n");
|
||||
|
||||
String URI = "http://"+m_user+".pmos.colosa.net/rest/"+m_user+"/TRANSLATION/";
|
||||
String index = "BUTTON/ESCAPE/en/";
|
||||
|
||||
System.out.println( "Request: " + URI + "index:" + index + "\n");
|
||||
URI = URI + index;
|
||||
|
||||
DefaultHttpClient httpClient = new DefaultHttpClient();
|
||||
HttpDelete deleteRequest = new HttpDelete(URI);
|
||||
try
|
||||
{
|
||||
HttpResponse httpResponse = httpClient.execute(deleteRequest);
|
||||
|
||||
HttpEntity responseEntity = httpResponse.getEntity();
|
||||
if( responseEntity != null)
|
||||
{
|
||||
String response = new String();
|
||||
if(response.isEmpty())
|
||||
{
|
||||
System.out.println( "Response: Status code: " + httpResponse.getStatusLine().getStatusCode()+ "\n");
|
||||
return;
|
||||
}
|
||||
response = EntityUtils.toString( responseEntity);
|
||||
System.out.println( "Response: " + response + "\n");
|
||||
}
|
||||
}
|
||||
catch( java.io.IOException x)
|
||||
{
|
||||
throw new RuntimeException("I/O error: " + x.toString());
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(String args[])
|
||||
{
|
||||
System.out.println("CRUD samples.");
|
||||
PostSample();
|
||||
GetSample();
|
||||
AnotherPostSample();
|
||||
PutSample();
|
||||
DeleteSample();
|
||||
|
||||
}
|
||||
}
|
||||
149
workflow/engine/methods/services/Rest/CURLMessage.php
Normal file
149
workflow/engine/methods/services/Rest/CURLMessage.php
Normal file
@@ -0,0 +1,149 @@
|
||||
<?php
|
||||
/**
|
||||
* Abstract class containing the CURL functionality, used to handle GET, POST, PUT and DELETE http methods.
|
||||
*
|
||||
* This class uses many different Curl functions, it would be great if this one gorws to allow the use of alll of them.
|
||||
*
|
||||
* @category Zend
|
||||
* @package ProcessMaker
|
||||
* @subpackage workflow
|
||||
* @copyright Copyright (c) ProcessMaker Colosa Inc.
|
||||
* @version Release: @2.0.44@
|
||||
* @since Class available since Release 2.0.44
|
||||
*/
|
||||
|
||||
define('PATH_SEP', '/');
|
||||
define('COLON', ':');
|
||||
define('DOT', '.');
|
||||
define('PROTOCOL_HTTP', 'http');
|
||||
|
||||
/**
|
||||
* Abstract class, containing the CURL functionality, used to handle GET, POST, PUT and DELETE http methods.
|
||||
*/
|
||||
abstract class CURLMessage
|
||||
{
|
||||
protected $restServer; // e.g. "http://ralph.pmos.colosa.net/rest/ralph/"; host + technich dir + workspace
|
||||
protected $content = "Content-Type: application/"; //set the string used to attach next the kind of message to be handle.
|
||||
protected $serviceTechnic = "rest";// name of the current durectory where the rest methods are.
|
||||
protected $server_method; // used to set the name of the remote host and the Rest method to be called.
|
||||
protected $type; // contains the type of the message.
|
||||
protected $ch; //curl handle instance.
|
||||
protected $output; // contains the output returned by the curl_exec function.
|
||||
|
||||
/**
|
||||
* Setting the remote host and init the Curl handle options
|
||||
*/
|
||||
function __construct()
|
||||
{
|
||||
$serverDNS = explode(DOT,$_SERVER['SERVER_NAME']);
|
||||
$serverDNS = array_reverse($serverDNS);
|
||||
$workspace = array_pop($serverDNS); //***aware this must contains the workspace name***
|
||||
|
||||
$this->restServer = PROTOCOL_HTTP . COLON.PATH_SEP . PATH_SEP;
|
||||
$this->restServer .= $_SERVER['SERVER_NAME'] . PATH_SEP;
|
||||
$this->restServer .= $this->serviceTechnic . PATH_SEP . $workspace . PATH_SEP;
|
||||
|
||||
$this->ch = curl_init();
|
||||
curl_setopt($this->ch,CURLOPT_TIMEOUT, 2);
|
||||
curl_setopt($this->ch,CURLOPT_POST, 1);
|
||||
curl_setopt($this->ch,CURLOPT_RETURNTRANSFER, 1);
|
||||
}
|
||||
/**
|
||||
* set the message in order to follow the message format
|
||||
*/
|
||||
abstract protected function format(array $message);
|
||||
/**
|
||||
* Set properties used in a simpleMessage Class like a set in a URI, or formatted as a JSon msg.
|
||||
*/
|
||||
abstract protected function setMoreProperties($messageFormated);
|
||||
/**
|
||||
* Attach the method to the restServer path, set the type of the message, and the message itself.
|
||||
*/
|
||||
protected function setMessageProperties($method,array $message)
|
||||
{
|
||||
$messageFormated = $this->format($message);
|
||||
$this->server_method = $this->restServer . $method;
|
||||
$this->setMoreProperties($messageFormated);
|
||||
}
|
||||
/**
|
||||
* Send or execute(curl notation) the message using a rest method
|
||||
**/
|
||||
public function send($method,array $message)
|
||||
{
|
||||
self::setMessageProperties($method,$message);
|
||||
$this->output = curl_exec($this->ch);
|
||||
return $this->output;
|
||||
}
|
||||
/**
|
||||
* Set the message to GET method type
|
||||
*/
|
||||
public function sendGET($method,array $message)
|
||||
{
|
||||
curl_setopt($this->ch, CURLOPT_HTTPGET,true);
|
||||
return $this->send($method,$message);
|
||||
}
|
||||
/**
|
||||
* Set the message to POST method type
|
||||
*/
|
||||
public function sendPOST($method,array $message)
|
||||
{
|
||||
curl_setopt($this->ch,CURLOPT_POST,true);
|
||||
return $this->send($method,$message);
|
||||
}
|
||||
/**
|
||||
* Set the message to PUT method type
|
||||
*/
|
||||
public function sendPUT($method,array $message)
|
||||
{
|
||||
curl_setopt($this->ch,CURLOPT_PUT,true);
|
||||
return $this->send($method,$message);
|
||||
}
|
||||
/**
|
||||
* Set the message to DELETE method type
|
||||
*/
|
||||
public function sendDELETE($method,array $message)
|
||||
{
|
||||
curl_setopt($this->ch,CURLOPT_CUSTOMREQUEST,"DELETE");
|
||||
return $this->send($method,$message);
|
||||
}
|
||||
/**
|
||||
* Display all the data that the response could got.
|
||||
*/
|
||||
public function displayResponse()
|
||||
{
|
||||
$error = curl_error($this->ch);
|
||||
$result = array( 'header' => '',
|
||||
'body' => '',
|
||||
'curl_error' => '',
|
||||
'http_code' => '',
|
||||
'last_url' => '');
|
||||
if ($error != ""){
|
||||
$result['curl_error'] = $error;
|
||||
return $result;
|
||||
}
|
||||
$response = $this->output;
|
||||
$header_size = curl_getinfo($this->ch,CURLINFO_HEADER_SIZE);
|
||||
$result['header'] = substr($response,0,$header_size);
|
||||
$result['body'] = substr($response,$header_size);
|
||||
$result['http_code'] = curl_getinfo($this -> ch,CURLINFO_HTTP_CODE);
|
||||
$result['last_url'] = curl_getinfo($this -> ch,CURLINFO_EFFECTIVE_URL);
|
||||
|
||||
echo $this->type." Response: ".$response."<BR>";
|
||||
foreach($result as $index => $data)
|
||||
{
|
||||
if($data != ""){
|
||||
echo $index . "=" . $data . "<BR>";
|
||||
}
|
||||
}
|
||||
echo "<BR>";
|
||||
}
|
||||
/**
|
||||
* Close the Curl session using the Curl Handle set by curl_init() function.
|
||||
*/
|
||||
public function close()
|
||||
{
|
||||
curl_close($this->ch);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
46
workflow/engine/methods/services/Rest/FormatedMessage.php
Normal file
46
workflow/engine/methods/services/Rest/FormatedMessage.php
Normal file
@@ -0,0 +1,46 @@
|
||||
<?php
|
||||
/**
|
||||
* Class defined to set all the configuration that XML, Json or other needs.
|
||||
*
|
||||
*
|
||||
* @category Zend
|
||||
* @package ProcessMaker
|
||||
* @subpackage workflow
|
||||
* @copyright Copyright (c) ProcessMaker Colosa Inc.
|
||||
* @version Release: @2.0.44@
|
||||
* @since Class available since Release 2.0.44
|
||||
*/
|
||||
|
||||
require_once("CURLMessage.php");
|
||||
|
||||
/**
|
||||
* Class defined to set all the configuration that XML, Json or other needs.
|
||||
*/
|
||||
class FormatedMessage extends CURLMessage
|
||||
{
|
||||
public function FormatedMessage()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
/**
|
||||
* Set the message in order to follow the message format, empty caused this class should not be instanced
|
||||
*/
|
||||
protected function format(array $message)
|
||||
{
|
||||
}
|
||||
/**
|
||||
* Setting CURL Url, Content and the message to be send
|
||||
*/
|
||||
protected function setMoreProperties($messageFormated)
|
||||
{
|
||||
//Please, remove this comment, is only for looging proposes.
|
||||
//
|
||||
echo "Request: " . $this->server_method . PATH_SEP . $messageFormated . " <br>";
|
||||
//
|
||||
curl_setopt($this->ch,CURLOPT_URL,$this->server_method);
|
||||
$contentSelected = $this->content . $this->type;
|
||||
curl_setopt($this->ch,CURLOPT_HTTPHEADER,array($contentSelected));
|
||||
curl_setopt($this->ch,CURLOPT_POSTFIELDS,$messageFormated);
|
||||
}
|
||||
}
|
||||
?>
|
||||
43
workflow/engine/methods/services/Rest/JsonMessage.php
Normal file
43
workflow/engine/methods/services/Rest/JsonMessage.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
* Class defined to be instanced and handle Json messages.
|
||||
*
|
||||
*
|
||||
* @category Zend
|
||||
* @package ProcessMaker
|
||||
* @subpackage workflow
|
||||
* @copyright Copyright (c) ProcessMaker Colosa Inc.
|
||||
* @version Release: @2.0.44@
|
||||
* @since Class available since Release 2.0.44
|
||||
*/
|
||||
|
||||
require_once("FormatedMessage.php");
|
||||
/**
|
||||
* Class defined to be instanced and handle Json messages
|
||||
*/
|
||||
class JsonMessage extends FormatedMessage
|
||||
{
|
||||
/**
|
||||
* Call the parent Curl initialization and set the type of the message
|
||||
*/
|
||||
public function JsonMessage()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->type = "json";
|
||||
}
|
||||
/**
|
||||
* Format the array parameter to a json format.
|
||||
*/
|
||||
protected function format(array $message)
|
||||
{
|
||||
if (empty($message)){
|
||||
return ;
|
||||
}
|
||||
if (is_array($message)){
|
||||
$jsonMessage = json_encode( $message);
|
||||
}
|
||||
return $jsonMessage;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
47
workflow/engine/methods/services/Rest/RestMessage.php
Normal file
47
workflow/engine/methods/services/Rest/RestMessage.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
/**
|
||||
* Class defined to be instanced and handle rest single parameters.
|
||||
*
|
||||
*
|
||||
* @category Zend
|
||||
* @package ProcessMaker
|
||||
* @subpackage workflow
|
||||
* @copyright Copyright (c) ProcessMaker Colosa Inc.
|
||||
* @version Release: @2.0.44@
|
||||
* @since Class available since Release 2.0.44
|
||||
*/
|
||||
|
||||
require_once("SimpleMessage.php");
|
||||
/**
|
||||
* Class defined to be instanced and handle rest single parameters
|
||||
*/
|
||||
class RestMessage extends SimpleMessage
|
||||
{
|
||||
/**
|
||||
* Call the parent Curl initialization and set the type of the message
|
||||
*/
|
||||
public function RestMessage()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->type = "rest";
|
||||
}
|
||||
/**
|
||||
* Format the array parameter to a single rest line format separed by '/'.
|
||||
*/
|
||||
protected function format(array $message)
|
||||
{
|
||||
$rest = "";
|
||||
if (!empty($message)){
|
||||
if (is_array($message)){
|
||||
foreach($message as $index => $data)
|
||||
{
|
||||
$rest .= "/" . $data;
|
||||
}
|
||||
$rest .= "/";
|
||||
}
|
||||
}
|
||||
return $rest;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
43
workflow/engine/methods/services/Rest/SimpleMessage.php
Normal file
43
workflow/engine/methods/services/Rest/SimpleMessage.php
Normal file
@@ -0,0 +1,43 @@
|
||||
<?php
|
||||
/**
|
||||
* Class defined to set enough curl configuration.
|
||||
*
|
||||
*
|
||||
* @category Zend
|
||||
* @package ProcessMaker
|
||||
* @subpackage workflow
|
||||
* @copyright Copyright (c) ProcessMaker Colosa Inc.
|
||||
* @version Release: @2.0.44@
|
||||
* @since Class available since Release 2.0.44
|
||||
*/
|
||||
|
||||
require_once("CURLMessage.php");
|
||||
|
||||
/**
|
||||
* Class defined to set enough curl configuration
|
||||
*/
|
||||
class SimpleMessage extends CURLMessage
|
||||
{
|
||||
public function SimpleMessage()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
/**
|
||||
* Set the message in order to follow the message format, empty caused this class should not be instanced
|
||||
*/
|
||||
protected function format(array $message)
|
||||
{
|
||||
}
|
||||
/**
|
||||
* Setting CURL Url, enough to attach a message.
|
||||
*/
|
||||
protected function setMoreProperties($messageFormated)
|
||||
{
|
||||
//Please, remove this comment, is only for looging proposes.
|
||||
//
|
||||
echo "Request: " . $this->server_method . PATH_SEP . $messageFormated . " <br>";
|
||||
//
|
||||
curl_setopt($this->ch,CURLOPT_URL,$this->server_method.$messageFormated);
|
||||
}
|
||||
}
|
||||
?>
|
||||
48
workflow/engine/methods/services/Rest/XmlMessage.php
Normal file
48
workflow/engine/methods/services/Rest/XmlMessage.php
Normal file
@@ -0,0 +1,48 @@
|
||||
<?php
|
||||
/**
|
||||
* Class defined to be instanced and handle XML format messages.
|
||||
*
|
||||
*
|
||||
* @category Zend
|
||||
* @package ProcessMaker
|
||||
* @subpackage workflow
|
||||
* @copyright Copyright (c) ProcessMaker Colosa Inc.
|
||||
* @version Release: @2.0.44@
|
||||
* @since Class available since Release 2.0.44
|
||||
*/
|
||||
|
||||
require_once("FormatedMessage.php");
|
||||
/**
|
||||
* Class defined to be instanced and handle XML format messages.
|
||||
*/
|
||||
class XmlMessage extends FormatedMessage
|
||||
{
|
||||
/**
|
||||
* Call the parent Curl initialization and set the type of the message
|
||||
*/
|
||||
public function XmlMessage()
|
||||
{
|
||||
parent::__construct();
|
||||
$this->type = "xml";
|
||||
}
|
||||
/**
|
||||
* Format the array parameter to a xml valid format. TODO: Need to find out a better way to do it.
|
||||
*/
|
||||
protected function format(array $message)
|
||||
{
|
||||
if (empty($message)){
|
||||
return ;
|
||||
}
|
||||
if (is_array($message)){
|
||||
$xml = "<?xml version='1.0'?><request>";
|
||||
foreach($message as $index => $data)
|
||||
{
|
||||
$xml .= "<" . $index . ">" . $data . "</" . $index . ">";
|
||||
}
|
||||
$xml .= "</request>";
|
||||
}
|
||||
return $xml;
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
37
workflow/engine/methods/services/Rest/testing.php
Normal file
37
workflow/engine/methods/services/Rest/testing.php
Normal file
@@ -0,0 +1,37 @@
|
||||
<?php
|
||||
|
||||
require_once("JsonMessage.php");
|
||||
require_once("XmlMessage.php");
|
||||
require_once("RestMessage.php");
|
||||
|
||||
$msg = array( 'user'=>'admin' , 'password'=>'admin');
|
||||
$method = "login";
|
||||
|
||||
$jsonm = new JsonMessage();
|
||||
$jsonm->send($method,$msg);
|
||||
$jsonm->displayResponse();
|
||||
|
||||
$xmlm = new XmlMessage();
|
||||
$xmlm->send($method, $msg);
|
||||
$xmlm->displayResponse();
|
||||
|
||||
$msg = array( "LABEL", "LOGIN", "en");
|
||||
$table = "TRANSLATION";
|
||||
|
||||
$rest = new RestMessage();
|
||||
$rest->sendGET($table,$msg);
|
||||
$rest->displayResponse();
|
||||
|
||||
$msg = array( "HOUSE", "PUSHIN", "en", "sample", "2012-06-06" );
|
||||
$rest->sendPOST($table,$msg);
|
||||
$rest->displayResponse();
|
||||
|
||||
$msg = array( "HOUSE", "PUSHIN", "en", "samplemod", "2012-07-06" );
|
||||
$rest->sendPUT($table,$msg);
|
||||
$rest->displayResponse();
|
||||
|
||||
$msg = array( "HOUSE", "PUSHIN", "en");
|
||||
$rest->sendDELETE($table,$msg);
|
||||
$rest->displayResponse();
|
||||
|
||||
?>
|
||||
Reference in New Issue
Block a user