Creating And Consuming Web Services In Php 5

36,160 views

Published on

Published in: Technology
4 Comments
7 Likes
Statistics
Notes
No Downloads
Views
Total views
36,160
On SlideShare
0
From Embeds
0
Number of Embeds
271
Actions
Shares
0
Downloads
646
Comments
4
Likes
7
Embeds 0
No embeds

No notes for slide

Creating And Consuming Web Services In Php 5

  1. 1. Creating and Consuming Web Services in PHP 5 Central Florida PHP 1
  2. 2. Creating and Consuming Web Services in PHP 5 • Web Service Basics • Using Existing Web Services • Rolling Your Own Web Service 2
  3. 3. Web Service Basics 3
  4. 4. What are Web Services? • According to WikiPedia • “Web Services are frequently just Web APIs that can be accessed over a network, such as the Internet, and executed on a remote system hosting the requested services” 4
  5. 5. What are Web Services? • ...in fewer words • “Web Services are a way to send and receive information between remote programs.” 5
  6. 6. What are Web Services Good For? 6
  7. 7. What are Web Services Good For? Resource 6
  8. 8. What are Web Services Good For? Consumer Resource 6
  9. 9. What are Web Services Good For? Consumer Resource Consumer Consumer Consumer 6
  10. 10. What are Web Services Good For? Consumer Resource Consumer Consumer Consumer 6
  11. 11. What are Web Services Good For? Consumer Resource Consumer Consumer Consumer 6
  12. 12. What are Web Services Good For? Consumer Resource Consumer Consumer Consumer 6
  13. 13. What are Web Services Good For? Consumer Resource Consumer Consumer Consumer 6
  14. 14. What are Web Services Good For? Consumer Resource Consumer Consumer Consumer 6
  15. 15. Types of Web Services • XML-RPC • SOAP • REST • Free-form 7
  16. 16. XML-RPC • RPC = Remote Procedure Call • The “Grandfather” of XML-based RPC services • Hence it’s name • Since 1998 • A precursor to SOAP 8
  17. 17. XML-RPC Libraries • http://php.net/xmlrpc/ • Native PHP support since 4.1.0 • Not enabled by default • Documentation Sucks • http://phpxmlrpc.sourceforge.net/ • Useful, Inc (Who also brought you XML-RPC) 9
  18. 18. XML-RPC Libraries • http://pear.php.net/package/XML_RPC/ • The classic, tried and true library • PHP 4 • Last Update 28 Oct 2006 • http://pear.php.net/package/XML_RPC2/ • PHP 5 Only 10
  19. 19. SOAP • Developed, Maintained, and Recommended by W3C • http://www.w3.org/TR/soap/ • Originally “Simple Object Access Protocol” • Now it is just “SOAP” • Probably because it is not very simple... 11
  20. 20. SOAP + WSDL • WSDL = Yet another W3 Standard • “Web Service Description Language” • http://www.w3.org/TR/wsdl/ • Used to expose SOAP web services • SOAP w/o WSDL means more typing • SOAP w/WSDL means less work 12
  21. 21. SOAP + WSDL • WSDL = Yet another W3 Standard • “Web Service Description Language” • http://www.w3.org/TR/wsdl/ • Used to expose SOAP web services • SOAP w/o WSDL means more typing • SOAP w/WSDL means less work 13
  22. 22. Consuming Soap Services $clientOptions = array( ‘uri’ => ‘http://host/server/’, ‘location’ => ‘http://host/server/MathServer.php’ ); $Client = new SoapClient(NULL, $clientOptions); $method = ‘add’; $params = array( new SoapParam(12345, ‘number1’), new SoapParam(98765, ‘number2’) ); echo $Client->__call($method, $params); 14
  23. 23. SOAP Libraries $Client = new SoapClient(‘http://host/Math.wsdl’); echo $Client->add(1234, 5678); 15
  24. 24. REST • REST = “Representational State Transfer” • Is not a standard • ... but it does use standards • HTTP, URI, XML • REST puts “Web” back into “Web Services” • The Internet is a REST system 16
  25. 25. REST + URI • REST puts the focus back into a URI rather than obscuring it behind an API • http://some-store.com/categories/ • http://some-store.com/products/widget • http://some-store.com/search/gadgets 17
  26. 26. Real Life Examples 18
  27. 27. del.icio.us • Most popular social bookmarking utility • http://del.icio.us • A property of Yahoo! • Wicked simple REST API • http://del.icio.us/help/api/ 19
  28. 28. The del.icio.us API • Update • https://api.del.icio.us/v1/posts/update • Tags • https://api.del.icio.us/v1/tags/get • https://api.del.icio.us/v1/tags/rename 20
  29. 29. The del.icio.us API • Simple API = Simple Documentation • http://del.icio.us/help/api • Uses HTTP Authentication • Still under development 21
  30. 30. The del.icio.us API • Posts • https://api.del.icio.us/v1/posts/get • https://api.del.icio.us/v1/posts/recent • https://api.del.icio.us/v1/posts/all • https://api.del.icio.us/v1/posts/dates • https://api.del.icio.us/v1/posts/add • https://api.del.icio.us/v1/posts/delete 22
  31. 31. The del.icio.us API • Bundles • https://api.del.icio.us/v1/tags/bundles/all • https://api.del.icio.us/v1/tags/bundles/set • https://api.del.icio.us/v1/tags/bundles/delete 23

×