web-gelistirme-sc.com

Test bitiş noktası nasıl oluşturulur?

drupal için yeniyim ve REST ve RESTWS modülünü kullanmak için hizmetler modülünü kullanıyorum.) RESTWS kullandım ve düğümün içeriğini http: //base_url/node/1.xml ve şimdi harici PHP uygulama drupal içine bir düğüm ve kullanıcılar eklemek gerekir. googled ve burada buldum http: // base_drupal_url/drupal7/test_endpoint/users = Drupal 7 adresinden bir hizmet oluşturmaya çalıştım, ama ne yapmam gerektiğini bilmiyorum uç nokta başlığı, adı ve uç nokta yolunu verin ve kıvrımda aynı uç nokta yolunu vermem gerektiğini varsayıyorum.

Geri kalan sunucunun yüklü olup olmadığını ve uç nokta yolunu nasıl oluşturacağınızı kontrol etmek için herhangi bir yardım çok yardımcı olacaktır.

Drupal 7 hizmet modülü hizmetleri-7.x-3.0-rc3 ile kullanıyorum

28
sridhar

Hizmetler modülünün kullanımı kolaydır, ancak özellikle konseptte yeniyseniz yapılandırmak zor olabilir. Bu yüzden, Servis modüllerinin yapılandırmasını "Drupal Cevaplar" kullanıcıları için kolaylaştırmak için ekran görüntülerini yayınlayacağım.

Makinemde yüklü Hizmetler modülünün sürümü aşağıdadır:

enter image description here

Aşağıda gösterildiği gibi 'dinlenme' adlı bir bitiş noktası oluşturun:

enter image description here

Sunucu türünü ve uç nokta yolunu seçin:

enter image description here

Etkinleştirmek istediğiniz kaynak listesini seçin ve diğer adları belirtin:

enter image description here

Etkinleştirmek istediğiniz yanıt formatlayıcılarını ve istek ayrıştırıcılarını seçin:

enter image description here

Yapılandırmanızı aşağıda gösterildiği gibi test edebilirsiniz:

enter image description here

Tüm düğümlerin listesini aşağıdaki gibi alabilirsiniz:

enter image description here

Ve özel düğüm:

enter image description here

Aşağıda, herhangi bir harici öğeden düğüm oluşturmak için MichaelCole burada http://drupal.org/node/910598#comment-4677738 tarafından sağlanan mükemmel örnek komut dosyaları verilmiştir PHP uygulama.

Bu cevabın bütünlüğü için kodunu çoğaltıyorum.

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

Okumanızı öneririm Services 3.x için kaynak oluşturma .

Ayrıca, Hizmetler ve RESTWS uyumlu olup olmadığına eminim; her ikisi de aynı şeyin varyasyonlarını sunar ve bu nedenle çelişebilir.

6
Blake Senftner