creating and consuming web services in php 5

31
Creating and Consuming Web Services in PHP 5 Central Florida PHP 1

Upload: michael-girouard

Post on 17-Jan-2015

32.859 views

Category:

Technology


2 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Creating And Consuming Web Services In Php 5

Creating and Consuming Web Services in PHP 5

Central Florida PHP

1

Page 2: Creating And Consuming Web Services In Php 5

Creating and Consuming Web Services in PHP 5

• Web Service Basics

• Using Existing Web Services

• Rolling Your Own Web Service

2

Page 3: Creating And Consuming Web Services In Php 5

Web Service Basics

3

Page 4: Creating And Consuming Web Services In Php 5

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

Page 5: Creating And Consuming Web Services In Php 5

What are Web Services?

• ...in fewer words

• “Web Services are a way to send and receive information between remote programs.”

5

Page 6: Creating And Consuming Web Services In Php 5

What are Web Services Good For?

6

Page 7: Creating And Consuming Web Services In Php 5

What are Web Services Good For?

Resource

6

Page 8: Creating And Consuming Web Services In Php 5

What are Web Services Good For?

Resource

Consumer

6

Page 9: Creating And Consuming Web Services In Php 5

What are Web Services Good For?

Resource

Consumer

Consumer

Consumer

Consumer

6

Page 10: Creating And Consuming Web Services In Php 5

What are Web Services Good For?

Resource

Consumer

Consumer

Consumer

Consumer

6

Page 11: Creating And Consuming Web Services In Php 5

What are Web Services Good For?

Resource

Consumer

Consumer

Consumer

Consumer

6

Page 12: Creating And Consuming Web Services In Php 5

What are Web Services Good For?

Resource

Consumer

Consumer

Consumer

Consumer

6

Page 13: Creating And Consuming Web Services In Php 5

What are Web Services Good For?

Resource

Consumer

Consumer

Consumer

Consumer

6

Page 14: Creating And Consuming Web Services In Php 5

What are Web Services Good For?

Resource

Consumer

Consumer

Consumer

Consumer

6

Page 15: Creating And Consuming Web Services In Php 5

Types of Web Services

• XML-RPC

• SOAP

• REST

• Free-form

7

Page 16: Creating And Consuming Web Services In Php 5

XML-RPC

• RPC = Remote Procedure Call

• The “Grandfather” of XML-based RPC services

• Hence it’s name

• Since 1998

• A precursor to SOAP

8

Page 17: Creating And Consuming Web Services In Php 5

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

Page 18: Creating And Consuming Web Services In Php 5

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

Page 19: Creating And Consuming Web Services In Php 5

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

Page 20: Creating And Consuming Web Services In Php 5

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

Page 21: Creating And Consuming Web Services In Php 5

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

Page 22: Creating And Consuming Web Services In Php 5

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

Page 23: Creating And Consuming Web Services In Php 5

SOAP Libraries

$Client = new SoapClient(‘http://host/Math.wsdl’);

echo $Client->add(1234, 5678);

15

Page 24: Creating And Consuming Web Services In Php 5

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

Page 25: Creating And Consuming Web Services In Php 5

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

Page 26: Creating And Consuming Web Services In Php 5

Real Life Examples

18

Page 27: Creating And Consuming Web Services In Php 5

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

Page 28: Creating And Consuming Web Services In Php 5

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

Page 29: Creating And Consuming Web Services In Php 5

The del.icio.us API

• Simple API = Simple Documentation

• http://del.icio.us/help/api

• Uses HTTP Authentication

• Still under development

21

Page 30: Creating And Consuming Web Services In Php 5

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

Page 31: Creating And Consuming Web Services In Php 5

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