โมดูลบริการนั้นใช้งานง่าย แต่สามารถปรับแต่งได้ยากโดยเฉพาะหากคุณยังใหม่กับแนวคิด ดังนั้นฉันจะโพสต์ภาพหน้าจอเพื่อทำให้การกำหนดค่าโมดูลบริการเป็นเรื่องง่ายสำหรับผู้ใช้ "Drupal Answers"
ต่อไปนี้เป็นเวอร์ชั่นของโมดูลบริการที่ติดตั้งบนเครื่องของฉัน:
สร้าง endpoint ที่ชื่อว่า 'rest' ตามที่แสดงด้านล่าง:
เลือกประเภทของเซิร์ฟเวอร์และพา ธ ปลายทาง:
เลือกรายการทรัพยากรที่คุณต้องการเปิดใช้งานและระบุนามแฝง:
เลือกตัวจัดรูปแบบการตอบสนองและตัวแยกวิเคราะห์คำขอที่คุณต้องการเปิดใช้งาน:
คุณสามารถทดสอบการกำหนดค่าตามที่แสดงด้านล่าง:
คุณสามารถรับรายการโหนดทั้งหมดดังต่อไปนี้:
และโหนดเฉพาะเป็น:
ต่อไปนี้เป็นตัวอย่างสคริปต์ที่ยอดเยี่ยมที่MichaelColeจัดทำไว้ที่นี่http://drupal.org/node/910598#comment-4677738เพื่อสร้างโหนดจากแอปพลิเคชัน PHP ภายนอกใด ๆ
ฉันกำลังทำซ้ำรหัสของเขาเพื่อความสมบูรณ์ของคำตอบนี้
//--------------login to the server------------------------
$service_url = 'http://example.dev/rest/user/login.xml'; // .xml asks for xml data in response
$post_data = array(
'username' => 'test',
'password' => 'test',
);
$post_data = http_build_query($post_data, '', '&'); // Format post data as application/x-www-form-urlencoded
// set up the request
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // have curl_exec return a string
curl_setopt($curl, CURLOPT_POST, true); // do a POST
curl_setopt($curl, CURLOPT_POSTFIELDS, $post_data); // POST this data
// make the request
curl_setopt($curl, CURLOPT_VERBOSE, true); // output to command line
$response = curl_exec($curl);
curl_close($curl);
print "LOGIN RESPONSE:\n";
var_dump($response);
// parse the response
$xml = new SimpleXMLElement($response);
$session_cookie = $xml->session_name . '=' . $xml->sessid;
// print "SESSION_COOKIE: $session_cookie";
file_put_contents('session_cookie.txt', $session_cookie);
//----------------create a node -------------------------------
$node_data = array(
'type' => 'ct_metadata_core',
'title' => 'test layer',
'field_core_lat_n[und][0]' => array('value' => '90'),
'field_core_lat_s[und][0]' => array('value' => '-90'),
'field_core_long_e[und][0]' => array('value' => '180'),
'field_core_long_w[und][0]' => array('value' => '-180'),
'field_core_description[und][0]' => array('value' => 'National Data Buoy Center'),
'field_core_originator[und][0]' => array('value' => 'NDBC'),
'field_core_url[und][0]' => array('url' => 'http://www.ndbc.noaa.gov/kml/marineobs_as_kml.php?sort=pgm'),
'field_cont_res_name_org[und][0]' => array('value' => 'test'),
);
$service_url = 'http://example.dev/rest/node'; // .xml asks for xml data in response
$session_cookie = file_get_contents('session_cookie.txt');
$node_data = http_build_query($node_data, '', '&'); // Format post data as application/x-www-form-urlencoded
// set up the request
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // have curl_exec return a string
curl_setopt($curl, CURLOPT_COOKIE, "$session_cookie"); // use the previously saved session
curl_setopt($curl, CURLOPT_POST, true); // do a POST
curl_setopt($curl, CURLOPT_POSTFIELDS, $node_data); // POST this data
// make the request
curl_setopt($curl, CURLOPT_VERBOSE, true); // output to command line
$response = curl_exec($curl);
curl_close($curl);
print "CREATE NODE RESPONSE:\n";
var_dump($response);
//----------------logout from the server-------------------------
$service_url = 'http://example.dev/rest/user/logout';
$session_cookie = file_get_contents('session_cookie.txt');
// set up the request
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); // have curl_exec return a string
curl_setopt($curl, CURLOPT_COOKIE, "$session_cookie"); // use the previously saved session
curl_setopt($curl, CURLOPT_POST, true); // do a POST
curl_setopt($curl, CURLOPT_POSTFIELDS, ""); // POST this data
// make the request
curl_setopt($curl, CURLOPT_VERBOSE, true); // output to command line
$response = curl_exec($curl);
curl_close($curl);
print "LOGOUT RESPONSE:\n";
var_dump($response);