Skip to content

Commit

Permalink
[#2375] data api button
Browse files Browse the repository at this point in the history
Conflicts:
	ckan/templates/package/snippets/data-api-button.html

	modeal removed by aron
  • Loading branch information
tobes committed Jul 18, 2012
1 parent 52cffaa commit 15b78ea
Show file tree
Hide file tree
Showing 2 changed files with 133 additions and 1 deletion.
132 changes: 132 additions & 0 deletions ckan/templates/ajax_snippets/api_info.html
@@ -0,0 +1,132 @@
<html>
<body>
<div>
<div class="modal-header">
<h3>
CKAN Data API
</h3>
</div>
<div class="modal-body">
<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/using-data-api.html" target="_blank">main
CKAN Data API and DataStore documentation</a>.</p>

<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" href=".collapse-endpoints">Endpoints &raquo;</a>
</div>
<div class="collapse-endpoints in accordion-body collapse">
<div class="accordion-inner">
<p>The Data API builds directly on ElasticSearch, with a resource API
endpoint being equivalent to a single index 'type' in ElasticSearch.
This means you can directly re-use <a
href="http://www.elasticsearch.org/guide/appendix/clients.html"
_target="blank">ElasticSearch
client libraries</a> when connecting to the API endpoint.</p>
<table class="table-condensed table-striped table-bordered">
<thead></thead>
<tbody>
<tr>
<th>Base</th>
<td><code>{{ datastore_root }}</code></td>
</tr>
<tr>
<th>Query</th>
<td>
<code>{{ datastore_root }}/_search</code>
</td>
</tr>
<tr>
<th>Query example</th>
<td>
<code><a href="{{ datastore_root }}/_search?size=5&amp;pretty=true" target="_blank">{{ datastore_root }}/_search?size=5&amp;pretty=true</a></code>
</td>
</tr>
<tr>
<th>Schema (Mapping)</th>
<td>
<code><a href="{{ datastore_root }}/_mapping" target="_blank">{{ datastore_root }}/_mapping?pretty=true</a></code>
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>

<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" href=".collapse-querying" data-toggle="collapse">Querying
&raquo;</a>
</div>
<div class="collapse-endpoints in accordion-body">
<div class="accordion-inner">
<strong>Query example (first 5 results)</strong>
<p>
<code><a href="{{ datastore_root }}/_search?size=5&amp;pretty=true" target="_blank">{{ datastore_root }}/_search?size=5&amp;pretty=true</a></code>
</p>

<strong>Query example (results with 'jones' in <code>title</code> field)</strong>
<p>
<code><a href="{{ datastore_root }}/_search?q=title:jones&amp;size=5&amp;pretty=true"
target="_blank">{{ datastore_root }}/_search?q=title:jones&amp;size=5&amp;pretty=true</a></code>
</p>

<strong>Schema (Mapping)</strong>
<p>
<code><a href="{{ datastore_root }}/_mapping" target="_blank">{{ datastore_root }}/_mapping?pretty=true</a></code>
</p>

<strong>Endpoint (for clients)</strong>
<p>
<code>{{ datastore_root }}</code>
</p>
</div>
</div>
</div>

<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" href=".collapse-javascript" data-toggle="collapse">Example: Javascript</a>
</div>
<div class="accordion-body collapse-javascript in">
<div class="accordion-inner">
<p>A simple ajax (JSONP) request to the data API using jQuery.</p>
<pre>
var data = {
size: 5 // get 5 results
q: 'title:jones' // query on the title field for 'jones'
};
$.ajax({
url: '{{ datastore_root }}/_search',
data: data,
dataType: 'jsonp',
success: function(data) {
alert('Total results found: ' + data.hits.total)
}
});</pre>
</div>
</div>
</div>

<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" href=".collapse-javascript" data-toggle="collapse">Example: Python</a>
</div>
<div class="accordion-body collapse-javascript in">
<div class="accordion-inner">
<pre>
import urllib
url = '{{ datastore_root }}/_search?size=5&amp;q=title:jones'
fileobj = urllib.urlopen(url)
print fileobj.read()
</pre>
</div>
</div>
</div>
</div>
</div>

</body>
</html>
2 changes: 1 addition & 1 deletion ckan/templates/package/snippets/data-api-button.html
Expand Up @@ -5,7 +5,7 @@

#}
{% if resource.webstore_url %}
<a class="btn btn-success" data-toggle="modal" href="{% url_for controller='api', action='snippet', ver=1, snippet_path='api-info.html', datastore_root_url=datastore_root_url %}">Data API</a>
<a class="btn btn-success" href="{% url_for controller='api', action='snippet', ver=1, snippet_path='api_info.html', datastore_root_url=datastore_root_url %}">Data API</a>
{% else %}
<a class="btn disabled" rel="tooltip" title="Data API is unavailable for this resource as DataStore is disabled">Data API</a>
{% endif %}

0 comments on commit 15b78ea

Please sign in to comment.