it-swarm-vi.com

Làm thế nào để tạo điểm cuối thử nghiệm?

Tôi chưa quen với drupal và tôi đang sử dụng mô-đun dịch vụ để sử dụng mô-đun REST và RESTWS. Tôi đã sử dụng RESTWS và có thể lấy nội dung của nút bằng cách - http: //base_url/node/1.xml và bây giờ tôi cần thêm một nút và người dùng từ ứng dụng bên ngoài PHP vào drupal. Tôi đã tìm thấy ở đây mà chúng ta cần sử dụng http: // base_drupal_url/drupal7/test_endpoint/users . Tôi đã cố gắng tạo một dịch vụ từ Drupal 7, nhưng tôi không biết nên làm gì đưa ra tiêu đề điểm cuối, tên và đường dẫn điểm cuối và tôi giả sử tôi cần đưa ra cùng một đường dẫn điểm cuối trong cuộn tròn.

Bất kỳ trợ giúp nào về cách kiểm tra xem máy chủ còn lại đã được cài đặt chưa và cách tạo đường dẫn điểm cuối sẽ giúp ích rất nhiều.

Tôi đang sử dụng Drupal 7 với các dịch vụ mô-đun dịch vụ-7.x-3.0-rc3

28
sridhar

Mô-đun dịch vụ rất dễ sử dụng, nhưng có thể khó cấu hình, đặc biệt nếu bạn chưa quen với khái niệm này. Vì vậy, tôi sẽ đăng ảnh chụp màn hình để dễ dàng cấu hình các mô-đun Dịch vụ cho người dùng "Câu trả lời Drupal".

Sau đây là phiên bản mô-đun Dịch vụ được cài đặt trên máy của tôi:

enter image description here

Tạo điểm cuối được gọi là 'phần còn lại' như được hiển thị bên dưới:

enter image description here

Chọn loại máy chủ và đường dẫn điểm cuối:

enter image description here

Chọn danh sách tài nguyên mà bạn muốn bật và chỉ định bí danh:

enter image description here

Chọn trình định dạng phản hồi và yêu cầu trình phân tích cú pháp mà bạn muốn bật:

enter image description here

Bạn có thể kiểm tra cấu hình của mình như bên dưới:

enter image description here

Bạn có thể lấy danh sách tất cả các nút như sau:

enter image description here

Và nút cụ thể là:

enter image description here

Sau đây là các tập lệnh ví dụ tuyệt vời được cung cấp bởi MichaelCole tại đây http://drupal.org/node/910598#comment-4677738 để tạo các nút từ bất kỳ bên ngoài PHP.

Tôi đang sao chép mã của anh ấy để hoàn thành câu trả lời này.

//--------------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);
56
Ajinkya Kulkarni

Tôi đề nghị bạn đọc Tạo tài nguyên cho Dịch vụ 3.x .

Ngoài ra, tôi lưu ý rằng Dịch vụ và RESTWS có tương thích hay không; cả hai đều cung cấp các biến thể của cùng một thứ, và như vậy có thể xung đột.

6
Blake Senftner