{# Displays information about accessing a resource via the API. resource_id - The resource id embedded - If true will not include the "modal" classes on the snippet. Example {% snippet 'datastore/snippets/api_info.html', resource_id=resource_id, embedded=true %} #} {% set code_examples = {} %} {% macro register_example(clang, example) %} {% set ex = code_examples.setdefault(clang, {}) %} {% set _ignore = ex.update({example: caller()}) %} {% endmacro %} {% set code_languages = ['curl', 'javascript', 'powershell', 'python', 'r'] %} {% block register_examples %} {# register examples by including templates here #} {% for clang in code_languages %} {% include "/datastore/api_examples/" + clang + ".html" %} {% endfor %} {% endblock %} {%- call ui.util.call(ui.modal, title=_('CKAN Data API'), id="api-info-modal", dismissible=true) -%}

{{ _('Access resource data via a web API with powerful query support') }}. {% trans url="https://docs.ckan.org/en/latest/maintaining/datastore.html#api-reference" %} Further information in the main CKAN Data API and DataStore documentation. {% endtrans %}

{{ _("Code examples:") }}

{% for clang in code_languages %} {{ ui.link(code_examples[clang]['button_label'], href="#lang-" ~ clang) }} {% endfor %} {%- call ui.util.call(ui.accordion_wrapper) -%} {%- call ui.util.call(ui.accordion, title=_('Querying')) -%} {% block query_examples %} {{ _('Get 5 results containing "jones" in any field:') }} {%- call ui.uitl.call(ui.tab_wrapper) -%} {% for clang in code_languages %} {{ ui.tab(code_examples[clang]['request_limit'], id="lang-" ~ clang, active=loop.index == 1) }} {% endfor %} {{ _('Get results with either "watershed" or "survey" as subject and "active" as its stage:') }} {% for clang in code_languages %} {{ ui.tab(code_examples[clang]['request_filter'], id="lang-" ~ clang) }} {% endfor %} {% if h.datastore_search_sql_enabled() %} {{ _('SQL query example:') }} {% for clang in code_languages %} {{ ui.tab(code_examples[clang]['request_sql'], id="lang-" ~ clang) }} {% endfor %} {% endif %} {%- endcall %} {% endblock %} {%- endcall %} {%- endcall %} {%- call ui.util.call(ui.accordion_wrapper) -%} {%- call ui.util.call(ui.accordion, title=_('Using the API with this Web Browser')) -%} {% block get_query_examples %}

{{ _('Some API endpoints may be accessed using a GET query string.') }}

{{ _('Query example (first 5 results)') }}

{{ h.url_for('api.action', logic_function='datastore_search', resource_id=resource.id, limit=5, qualified=True) }}

{{ _('Query example (results containing \'jones\')') }}

{{ h.url_for('api.action', logic_function='datastore_search', resource_id=resource.id, q='jones', qualified=True) }}

{% if h.datastore_search_sql_enabled() %} {# not urlencoding the sql because its clearer #} {% set sql_example_url = h.url_for( 'api.action', logic_function='datastore_search_sql', qualified=True ) + '?sql=SELECT * from "' + resource.id + '" WHERE title LIKE \'jones\'' %} {{ _('Query example (via SQL statement)') }}

{{ sql_example_url }}

{% endif %} {% endblock %} {%- endcall %} {%- endcall %} {%- endcall %}