-
Notifications
You must be signed in to change notification settings - Fork 2k
/
api_info.html
138 lines (121 loc) · 4.89 KB
/
api_info.html
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
{#
Displays information about accessing a resource via the API.
datastore_root_url - The root API url.
resource_id - The resource id
embedded - If true will not include the "modal" classes on the snippet.
Example
{% snippet 'ajax_snippets/api_info.html', datastore_root_url=datastore_root_url, resource_id=resource_id, embedded=true %}
#}
{% set sql_example_url = datastore_root_url + '/datastore_search_sql?sql=SELECT * from "' + resource_id + '" WHERE title LIKE \'jones\'' %}
<div{% if not embedded %} class="modal"{% endif %}>
<div class="modal-header">
<h3>
CKAN Data API
</h3>
</div>
<div{% if not embedded %} class="modal-body"{% endif %}">
<p><strong>Access resource data via a web API with powerful query
support</strong>. Further information in the <a
href="http://docs.ckan.org/en/latest/datastore.html" target="_blank">main
CKAN Data API and DataStore documentation</a>.</p>
<div class="accordion" id="accordion2">
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="accordion2" href="#collapse-endpoints">Endpoints »</a>
<!-- <h4>Endpoints</h4>-->
</div>
<div id="collapse-endpoints" class="in accordion-body collapse">
<div class="accordion-inner">
<p>The Data API can be accessed via the following actions of the CKAN action API.</p>
<table class="table-condensed table-striped table-bordered">
<thead></thead>
<tbody>
<tr>
<th scope="row">Create</th>
<td><code>{{ datastore_root_url }}/datastore_create</code></td>
</tr>
<tr>
<th scope="row">Update / Insert</th>
<td><code>{{ datastore_root_url }}/datastore_upsert</code></td>
</tr>
<tr>
<th scope="row">Query</th>
<td><code>{{ datastore_root_url }}/datastore_search</code></td>
</tr>
<tr>
<th scope="row">Query (via SQL)</th>
<td><code>{{ datastore_root_url }}/datastore_search_sql</code></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="accordion2" href="#collapse-querying">Querying »</a>
<!-- <h4>Querying</h4>-->
</div>
<div id="collapse-querying" class="collapse accordion-body in">
<div class="accordion-inner">
<strong>Query example (first 5 results)</strong>
<p>
<code><a href="{{ datastore_root_url }}/datastore_search?resource_id={{resource_id}}&limit=5" target="_blank">{{ datastore_root_url }}/datastore_search?resource_id={{resource_id}}&limit=5</a></code>
</p>
<strong>Query example (results containing 'jones')</strong>
<p>
<code><a href="{{ datastore_root_url }}/datastore_search?resource_id={{resource_id}}&q=jones"
target="_blank">{{ datastore_root_url }}/datastore_search?resource_id={{resource_id}}&q=jones</a></code>
</p>
<strong>Query example (via SQL statement)</strong>
<p>
<code><a href="{{sql_example_url}}"
target="_blank">{{sql_example_url}}</a></code>
</p>
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="accordion2" href="#collapse-javascript">Example: Javascript »</a>
<!-- <h4>Example: Javascript</h4>-->
</div>
<div id="collapse-javascript" class="accordion-body collapse">
<div class="accordion-inner">
<p>A simple ajax (JSONP) request to the data API using jQuery.</p>
<pre>
var data = {
resource_id: '{{resource_id}}', // the resource id
limit: 5, // get 5 results
q: 'jones' // query for 'jones'
};
$.ajax({
url: '{{ datastore_root_url }}/datastore_search',
data: data,
dataType: 'jsonp',
success: function(data) {
alert('Total results found: ' + data.result.total)
}
});</pre>
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="accordion2" href="#collapse-python">Example: Python »</a>
<!-- <h4>Example: Python</h4>-->
</div>
<div id="collapse-python" class="accordion-body collapse">
<div class="accordion-inner">
<pre>
import urllib
url = '{{ datastore_root_url }}/datastore_search?limit=5&q=title:jones'
fileobj = urllib.urlopen(url)
print fileobj.read()
</pre>
</div>
</div>
</div>
</div>
</div>
</div>