building adaptive payment systems with yql
DESCRIPTION
Presentation on "Building Adaptive Payment Systems using YQL" presented at PayPal X Innovate 2010TRANSCRIPT
Constructing "SELECT * FROM Internet" Payment Tools Using the Yahoo! Query Language
2
1. Delivering Upsell Content from YQL Data Sources
2. Driving Traffic Back to Your Services with Open Data Tables
3. Mashing up Multiple Data Sources with Server-Side JavaScript
What We’ll Learn
3
4
5
Making Queries SELECT * FROM Internet
6
YQL Test Console
Available At: http://developer.yahoo.com/yql/console
7
SELECT myColumn, myTitle FROM myTable(0, 50) WHERE myColumn = 'value' AND myTitle = 'title'
LIMIT 3 OFFSET 10 |
sort(field='myColumn') | reverse()
Running Queries - SELECT Query Structure
8
Modify Data on the InternetCreate Tweets, Add Blog Entries, Update Databases
Current Tables Using I/U/DTwitter Status, bit.ly URL Shortner, Yahoo! Profile Status / Update Stream, Amazon SimpleDB
Running Queries - INSERT / UPDATE / DELETE
9
SELECT * FROM flickr.photos.search WHERE (lat, lon) IN (SELECT centroid.latitude, centroid.longitude FROM geo.places WHERE text="SFO")
Running Queries – Sub-selects with the IN clause
10
Running Queries – Available Tables
YQL Command: SHOW Tables
Number of Standard Tables: 169Number of Community Tables: 771Total Number of Tables: 940
Contribute Tables to: http://www.github.com/yql/yql-tables/
11
Running Queries – Table Syntax
YQL Command: DESC tablename
12
http://query.yahooapis.com/v1/yql?[params]http://query.yahooapis.com/v1/public/yql?[params]
Params• q=[QUERY]• format=[XML / JSON]• diagnostics=[true / false]• debug=[true / false]• callback=[function name]
Running Queries – URL Format
13
http://query.yahooapis.com/v1/yql?[params]http://query.yahooapis.com/v1/public/yql?[params] Params• q=[QUERY]• format=[XML / JSON / JSONP / JSONP-X]• diagnostics=[true / false]• debug=[true / false] • callback=[function name]
Running Queries – URL Format
14
15
Driving Traffic Back to your Services
YQL Open Data Tables Wrap Your Own API or Data Source
16
<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta></meta> <bindings></bindings></table>
Open Data Tables – XML File Syntax
17
<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta></meta> <bindings></bindings></table>
Open Data Tables – XML File Syntax
18
<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta> <author>Jonathan LeBlanc</author> <description>My Table</description> <documentationURL>www.site.com</documentationURL> <sampleQuery>SELECT * FROM {table} </sampleQuery> </meta> <bindings></bindings></table>
Open Data Tables – XML File Syntax
19
<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta></meta> <bindings></bindings></table>
Open Data Tables – XML File Syntax
20
<table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta></meta> <bindings> <select itemPath="" produces="XML" > <urls> <url env="all”>http://www.site.com/{user}</url> </urls> <inputs> <key id="user" type="xs:string" paramType="path" required="true" /> </inputs> </select> </bindings></table>
Open Data Tables – XML File Syntax
21
The USE clause
USE "http://alavilli.com/yql/paypal_txn_table.xml" AS paypal_txn_table;
SELECT * FROM paypal_txn_table WHERE StartDate="2010-06-12T00:00:00.000Z" AND APIUsername="xxx" AND APIPassword="xxx" AND Signature="xxx"
Open Data Tables – Invoking a Table Definition
22
New PayPal Tables!
Available At: http://github.com/yql/yql-tablesTransaction Search: paypal/paypal.transaction.xml
Transaction Details: paypal/paypal.transactions.details
23
24
25
Mapping Social Data to Products
Location
Interests
Profession
Friends
Birthday / Anniversary
Regional Products
Product Suggestions
Specialty Merchandise
Suggest to Friends
Seasonal / Targeted Products
YQL Execute Extending Open Data Tables
26
Augment dataCollect geographic data based on a free-form text location
Create APIs from web pagesBuild your very own ScrAPI
Data TransformationsConvert the results from xml to Google's kml format
Move business logic of your application to the cloud
YQL Execute – XML File Syntax
27
<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta></meta> <bindings> <select itemPath="" produces="XML" > <urls></urls> <inputs></inputs> </select> </bindings></table>
YQL Execute – XML File Syntax
28
<?xml version="1.0" encoding="UTF-8"?><table xmlns="http://query.yahooapis.com/v1/schema/table.xsd">
<meta></meta> <bindings> <select itemPath="" produces="XML" > <urls></urls> <inputs></inputs> <execute></execute> </select> </bindings></table>
YQL Execute – XML File Syntax
29
<execute> <![CDATA[ var arrQueries = inputs['query'].split('|'); var elQueries = <queries/>; . . . ]]></execute>
YQL Execute – XML File Syntax
30
Global Disaster Alert and Coordination System Table
Available At: http://github.com/yql/yql-tablesUnder gdacs/gdacs.current.xml
31
Build adaptive applications faster (and that run faster)
Conclusion
32
YQL Documentationhttp://developer.yahoo.com/yql
YQL Consolehttp://developer.yahoo.com/yql/console
YQL Github Account (Contribute Tables)http://github.com/yql/yql-tables
33
Thank YouQuestions?
34