Cross Reference: /yui3/src/datasource/docs/datasource-io.mustache
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly<div class="intro">
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly <p>Accessing data from a server is easy with DataSource.IO, which uses the IO Utility to retrieve data over HTTP. A <a href="../dataschema/">DataSchema</a> plugin is used to normalize incoming data into a known format for consistency of usage by other components.</p>
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly</div>
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly
819e90d415ed17d59af3a247b2ad9d6feb0c21b5Luke Smith<div class="example yui3-skin-sam">
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly{{>datasource-io-source}}
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly</div>
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly<p>If your server returns JSON data, use a DataSourceJSONSchema plugin to parse the data against a schema that you provide:</p>
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly```
df3b7a1f325a79c0c17a7080446869b612514026Jenny DonnellyYUI().use("datasource-io", "datasource-jsonschema", function(Y) {
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly var myDataSource = new Y.DataSource.IO({source:"ysearch_json_madonna.php"}),
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly myCallback = {
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly success: function(e){
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly alert(e.response);
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly },
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly failure: function(e){
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly alert("Could not retrieve data: " + e.error.message);
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly }
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly };
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly myDataSource.plug(Y.Plugin.DataSourceJSONSchema, {
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly schema: {
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly resultListLocator: "ResultSet.Result",
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly resultFields: ["Title"]
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly }
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly });
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly // This request string will get appended to the URI
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly myDataSource.sendRequest({
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly request:"?output=json",
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly callback:myCallback
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly });
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly});
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly```
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly<p>On the other hand, a DataSourceXMLSchema plugin can be used to parse XML data coming from your server:</p>
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly```
df3b7a1f325a79c0c17a7080446869b612514026Jenny DonnellyYUI().use("datasource-io", "datasource-xmlschema", function(Y) {
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly var myDataSource = new Y.DataSource.IO({source:"ysearch_xml_madonna.php"}),
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly myCallback = {
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly success: function(e){
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly alert(e.response);
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly },
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly failure: function(e){
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly alert("Could not retrieve data: " + e.error.message);
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly }
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly };
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly myDataSource.plug(Y.Plugin.DataSourceXMLSchema, {
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly schema: {
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly resultListLocator: "result",
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly resultFields: [{key:"title", locator:"*[local-name() ='title']"}]
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly }
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly });
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly myDataSource.sendRequest({
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly request:"?output=xml",
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly callback:myCallback
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly });
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly});
df3b7a1f325a79c0c17a7080446869b612514026Jenny Donnelly```