Hướng dẫn soap api example php - xà phòng api ví dụ php

Dịch vụ soap là dịch vụ web service, xây dựng cho website để cho phép ứng dụng thứ 3 tương tác vào dữ liệu của website. Khác với dịch vụ web service json api, Soap trả về dữ liệu xml WSDL và json api thì trả về kiểu dữ liệu json.

Soap được thiết kế với ý tưởng gọi hàm, soap có 2 phần:

  • Soap server: chính là nội dung webservice, phần này xây dựng ở phía web wordpress. Soap server có sau khi được tạo sẽ cung cấp địa chỉ cho soap client truy cập và sử dụng. Nhận dạng Địa chỉ Soap có thêm tham số ?wsdl
  • Soap client: mọi nền tảng có hỗ trợ soap đây còn gọi là thiết bị đầu cuối, là phần sử dụng soap. Hầu hết các ngôn ngữ lập trình hiện nay đều hỗ trợ soap như php, asp, java,j2me,c#,python,…

– Hiểu đơn giản: Soap server là nơi cung cấp sản phẩm còn Soap client là nơi sử dụng sản phẩm.

Giải thích: Soap server chứa các hàm được xây dựng và thực thị bởi một ngôn ngữ (vd: php), một thư viện soap được chèn vào bộ code website “cung cấp dịch vụ soap” và trở thành soap server. ứng dụng thứ 3 hay soap client không thể truy cập trực tiếp mã code này, thay vào đó nó được mã hóa sang dạng WSDL là dữ liệu XML chứa thông tin các hàm có trong dịch vụ soap. Khi đó địa chỉ soap server có dạng:: Soap server chứa các hàm được xây dựng và thực thị bởi một ngôn ngữ (vd: php), một thư viện soap được chèn vào bộ code website “cung cấp dịch vụ soap” và trở thành soap server. ứng dụng thứ 3 hay soap client không thể truy cập trực tiếp mã code này, thay vào đó nó được mã hóa sang dạng WSDL là dữ liệu XML chứa thông tin các hàm có trong dịch vụ soap. Khi đó địa chỉ soap server có dạng:

Một số thư viện soap để bạn tham khảo: nusoap

< ?xml version="1.0"?>



  
    IBM
  



Quay trở lại bài viết, wordpress có hỗ trợ một vài plugin để tạo soap, hiện tại mình biết được plugin này các bạn tải plugin này tại đây nhé: Download WordPress Soap service

Sau khi tải về, kích hoạt plugin. Trong bài viết này địa chỉ web mình lấy là http://localhost/wordpress , thì địa chỉ của soap sẽ là: http://localhost/wordpress?/wpws/?wsdl Truy cập địa chỉ này trên trình duyệt sẽ thấy kết quả trả về file xml, file này gọi là wsdl. Thông tin tất cả các hàm sẽ sử dụng thể hiện ở URL này.
http://localhost/wordpress?/wpws/?wsdl
Truy cập địa chỉ này trên trình duyệt sẽ thấy kết quả trả về file xml, file này gọi là wsdl. Thông tin tất cả các hàm sẽ sử dụng thể hiện ở URL này.

Xem thông tin của plugin, bạn truy cập vào địa chỉ: http://localhost/wordpress?/wpws Kết quả:
Kết quả:

Hướng dẫn soap api example php - xà phòng api ví dụ php

Mình chạy thử soap với php, trong PHP có hỗ trợ thư viện Soap client. Sử dụng notepad++ tạo mới file wp-soap-client.php, và chép vào đoạn code dưới đây:

< ?php
$url='http://localhost/wordpress/index.php?/wpws/?wsdl';
$client     = new SoapClient($url, array("trace" => 1, "exception" => 0));
$result = $client->__soapCall("getPosts",array('id'=>'1'));
print_r($result);
?>

Đoạn code trên kết nối vào dịch vụ soap có địa chỉ http://localhost/wordpress/index.php?/wpws/?wsdl sử dụng class SoapClient. Trong đối tượng lớp SoapClient có phương thức __soapCall dùng để gọi hàm. Tham số mảng

< ?php
$url='http://localhost/wordpress/index.php?/wpws/?wsdl';
$client     = new SoapClient($url, array("trace" => 1, "exception" => 0));
$result = $client->__soapCall("getPosts",array('id'=>'1'));
print_r($result);
?>
0 chứa các tham số có sử dụng vào hàm được gọi.

Hàm

< ?php
$url='http://localhost/wordpress/index.php?/wpws/?wsdl';
$client     = new SoapClient($url, array("trace" => 1, "exception" => 0));
$result = $client->__soapCall("getPosts",array('id'=>'1'));
print_r($result);
?>
1 trong wordpress trả về nội dung của post, trong ví dụ trên chúng ta có kết quả của
< ?php
$url='http://localhost/wordpress/index.php?/wpws/?wsdl';
$client     = new SoapClient($url, array("trace" => 1, "exception" => 0));
$result = $client->__soapCall("getPosts",array('id'=>'1'));
print_r($result);
?>
2:

stdClass Object ( [item] => stdClass Object ( [id] => 1 [author] => 1 [date] => 2014-07-15 03:03:08 [dateGmt] => 2014-07-15 03:03:08 [content] => Welcome to wp2 Sites. This is your first post. Edit or delete it, then start blogging! [title] => Hello world! [excerpt] => [status] => publish [commentStatus] => open [pingStatus] => open [password] => [name] => hello-world [toPing] => [pinged] => [modified] => 2014-07-17 10:48:19 [modifiedGmt] => 2014-07-17 10:48:19 [contentFiltered] => [parentId] => 0 [guid] => http://localhost/wp2/thevistaanphu/?p=1 [menuOrder] => 0 [type] => post [mimeType] => [commentCount] => 1 [filter] => raw ) )

FAQ

Nếu không truy cập được địa chỉ soap wsdl, bạn kiểm tra file wpws.wsdl có tồn tại trong folder plugin wordpress-web-service không. Nếu không tồn tại thì copy wpws.template.wsdl thành wpws.wsdl rồi edit file với notepad++: Tìm chuỗi:

< ?php
$url='http://localhost/wordpress/index.php?/wpws/?wsdl';
$client     = new SoapClient($url, array("trace" => 1, "exception" => 0));
$result = $client->__soapCall("getPosts",array('id'=>'1'));
print_r($result);
?>
3 thay %{BLOG_PATH} bằng địa chỉ web của bạn (ví dụ: http://yoursite.com/blog), sau đó save lại. wordpress-web-service không. Nếu không tồn tại thì copy wpws.template.wsdl thành wpws.wsdl rồi edit file với notepad++:
Tìm chuỗi:
< ?php
$url='http://localhost/wordpress/index.php?/wpws/?wsdl';
$client     = new SoapClient($url, array("trace" => 1, "exception" => 0));
$result = $client->__soapCall("getPosts",array('id'=>'1'));
print_r($result);
?>
3 thay %{BLOG_PATH} bằng địa chỉ web của bạn (ví dụ: http://yoursite.com/blog), sau đó save lại.

Chúc bạn thành công.

Nếu bạn thấy bài viết này hữu ích, hãy chia sẻ với bạn bè bằng cách nhấn nút chia sẻ ở bên dưới. Theo dõi chúng tôi trên Twitter và Facebook