8/3/2019 Creating and Consuming Web Services in Php 51391
1/31
Creating and Consuming
Web Services in PHP 5Central Florida PHP
1
8/3/2019 Creating and Consuming Web Services in Php 51391
2/31
Creating and Consuming
Web Services in PHP 5
Web Service Basics
Using Existing Web Services
Rolling Your Own Web Service
2
8/3/2019 Creating and Consuming Web Services in Php 51391
3/31
Web Service Basics
3
8/3/2019 Creating and Consuming Web Services in Php 51391
4/31
What are Web Services?
According to WikiPedia Web Services are frequently just Web APIs that
can be accessed over a network, such as theInternet, and executed on a remote systemhosting the requested services
4
8/3/2019 Creating and Consuming Web Services in Php 51391
5/31
What are Web Services?
...in fewer words
Web Services are a way to send and receiveinformation between remote programs.
5
8/3/2019 Creating and Consuming Web Services in Php 51391
6/31
What are Web Services
Good For?
6
8/3/2019 Creating and Consuming Web Services in Php 51391
7/31
What are Web Services
Good For?
Resource
6
8/3/2019 Creating and Consuming Web Services in Php 51391
8/31
What are Web Services
Good For?
Resource
Consumer
6
8/3/2019 Creating and Consuming Web Services in Php 51391
9/31
What are Web Services
Good For?
Resource
Consumer
Consumer
Consumer
Consumer
6
8/3/2019 Creating and Consuming Web Services in Php 51391
10/31
What are Web Services
Good For?
Resource
Consumer
Consumer
Consumer
Consumer
6
8/3/2019 Creating and Consuming Web Services in Php 51391
11/31
What are Web Services
Good For?
Resource
Consumer
Consumer
Consumer
Consumer
6
8/3/2019 Creating and Consuming Web Services in Php 51391
12/31
What are Web Services
Good For?
Resource
Consumer
Consumer
Consumer
Consumer
6
8/3/2019 Creating and Consuming Web Services in Php 51391
13/31
What are Web Services
Good For?
Resource
Consumer
Consumer
Consumer
Consumer
6
8/3/2019 Creating and Consuming Web Services in Php 51391
14/31
What are Web Services
Good For?
Resource
Consumer
Consumer
Consumer
Consumer
6
8/3/2019 Creating and Consuming Web Services in Php 51391
15/31
Types of Web Services
XML-RPC
SOAP
REST
Free-form
7
8/3/2019 Creating and Consuming Web Services in Php 51391
16/31
XML-RPC
RPC = Remote Procedure Call
The Grandfather of XML-based RPCservices
Hence its name
Since 1998 A precursor to SOAP
8
8/3/2019 Creating and Consuming Web Services in Php 51391
17/31
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
8/3/2019 Creating and Consuming Web Services in Php 51391
18/31
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
8/3/2019 Creating and Consuming Web Services in Php 51391
19/31
SOAP
Developed, Maintained, and Recommendedby W3C
http://www.w3.org/TR/soap/
Originally Simple Object Access Protocol
Now it is just SOAP Probab ly because it is not very sim ple...
11
http://www.w3.org/TR/soap/http://www.w3.org/TR/soap/http://www.w3.org/TR/soap/8/3/2019 Creating and Consuming Web Services in Php 51391
20/31
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
8/3/2019 Creating and Consuming Web Services in Php 51391
21/31
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
8/3/2019 Creating and Consuming Web Services in Php 51391
22/31
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
8/3/2019 Creating and Consuming Web Services in Php 51391
23/31
SOAP Libraries
$Client = new SoapClient (http://host/Math.wsdl);
echo $Client -> add (1234, 5678);
15
8/3/2019 Creating and Consuming Web Services in Php 51391
24/31
REST
REST = Representational State Transfer
Isnot
a standard ... but it does use standards
HTTP, URI, XML
REST puts Web back into Web Services The Internet is a REST system
16
8/3/2019 Creating and Consuming Web Services in Php 51391
25/31
REST + URI
REST puts the focus back into a URI ratherthan obscuring it behind an API
http://some-store.com/categories/
http://some-store.com/products/widget
http://some-store.com/search/gadgets
17
8/3/2019 Creating and Consuming Web Services in Php 51391
26/31
Real Life Examples
18
8/3/2019 Creating and Consuming Web Services in Php 51391
27/31
del.icio.us
Most popular social bookmarking utility
http://del.icio.us
A property of Yahoo!
Wicked simple REST API
http://d el.icio.us/help/a pi/
19
http://del.icio.us/http://del.icio.us/http://del.icio.us/8/3/2019 Creating and Consuming Web Services in Php 51391
28/31
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
https://api.del.icio.us/v1/posts/updatehttps://api.del.icio.us/v1/tags/renamehttps://api.del.icio.us/v1/tags/renamehttps://api.del.icio.us/v1/tags/gethttps://api.del.icio.us/v1/tags/gethttps://api.del.icio.us/v1/posts/updatehttps://api.del.icio.us/v1/posts/update8/3/2019 Creating and Consuming Web Services in Php 51391
29/31
The del.icio.us API
Simple API = Simple Documentation
http://del.icio.us/help/api
Uses HTTP Authentication
Still under development
21
http://del.icio.us/help/apihttp://del.icio.us/help/apihttp://del.icio.us/help/api8/3/2019 Creating and Consuming Web Services in Php 51391
30/31
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
https://api.del.icio.us/v1/posts/addhttps://api.del.icio.us/v1/posts/dateshttps://api.del.icio.us/v1/posts/allhttps://api.del.icio.us/v1/posts/recenthttps://api.del.icio.us/v1/posts/gethttps://api.del.icio.us/v1/posts/deletehttps://api.del.icio.us/v1/posts/deletehttps://api.del.icio.us/v1/posts/addhttps://api.del.icio.us/v1/posts/addhttps://api.del.icio.us/v1/posts/dateshttps://api.del.icio.us/v1/posts/dateshttps://api.del.icio.us/v1/posts/allhttps://api.del.icio.us/v1/posts/allhttps://api.del.icio.us/v1/posts/recenthttps://api.del.icio.us/v1/posts/recenthttps://api.del.icio.us/v1/posts/gethttps://api.del.icio.us/v1/posts/get8/3/2019 Creating and Consuming Web Services in Php 51391
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
https://api.del.icio.us/v1/tags/bundles/sethttps://api.del.icio.us/v1/tags/bundles/allhttps://api.del.icio.us/v1/tags/bundles/deletehttps://api.del.icio.us/v1/tags/bundles/deletehttps://api.del.icio.us/v1/tags/bundles/sethttps://api.del.icio.us/v1/tags/bundles/sethttps://api.del.icio.us/v1/tags/bundles/allhttps://api.del.icio.us/v1/tags/bundles/all