it-swarm-id.com

Bagaimana cara membuat test_endpoint?

Saya baru mengenal drupal dan saya menggunakan modul layanan untuk menggunakan modul REST dan RESTWS. Saya menggunakan RESTWS dan bisa mendapatkan konten dari simpul dengan - http: //base_url/node/1.xml dan sekarang saya perlu menambahkan node dan pengguna dari aplikasi eksternal PHP ke drupal. Saya googled dan saya temukan di sini yang perlu kita gunakan http: // base_drupal_url/drupal7/test_endpoint/users . Saya mencoba membuat layanan dari Drupal 7, tapi saya tidak tahu apa yang harus saya lakukan berikan pada judul titik akhir, nama dan jalur akhir dan saya menganggap saya perlu memberikan jalur titik akhir yang sama dalam ikal.

Setiap bantuan tentang cara memeriksa apakah server sisanya diinstal dan cara membuat jalur titik akhir akan sangat membantu.

Saya menggunakan Drupal 7 dengan layanan modul layanan-7.x-3.0-rc3

28
sridhar

Modul layanan mudah digunakan, tetapi bisa sulit untuk mengkonfigurasi terutama jika Anda baru mengenal konsep tersebut. Jadi, saya akan memposting tangkapan layar untuk membuat konfigurasi modul Layanan mudah bagi pengguna "Jawaban Drupal".

Berikut ini adalah versi modul Layanan yang diinstal pada mesin saya:

enter image description here

Buat titik akhir yang disebut 'istirahat' seperti yang ditunjukkan di bawah ini:

enter image description here

Pilih jenis server dan jalur titik akhir:

enter image description here

Pilih daftar sumber daya yang ingin Anda aktifkan dan tentukan alias:

enter image description here

Pilih format tanggapan dan permintaan parser yang ingin Anda aktifkan:

enter image description here

Anda dapat menguji konfigurasi Anda seperti yang ditunjukkan di bawah ini:

enter image description here

Anda bisa mendapatkan daftar semua node seperti di bawah ini:

enter image description here

Dan simpul khusus sebagai:

enter image description here

Berikut ini adalah contoh skrip yang disediakan oleh MichaelCole di sini http://drupal.org/node/910598#comment-4677738 untuk membuat simpul dari setiap eksternal PHP aplikasi.

Saya menduplikasi kodenya untuk kelengkapan jawaban ini.

//--------------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

Saya sarankan Anda membaca Membuat sumber daya untuk Layanan 3.x .

Juga, saya perhatikan yakin apakah Layanan dan RESTWS kompatibel; mereka berdua menawarkan variasi hal yang sama, dan karena itu dapat bertentangan.

6
Blake Senftner