Получить идентификатор/имя набора данных ресурса в CKAN с помощью одного вызова API?

Обратите внимание, что URL-адреса, содержащиеся в публикации, ненастоящие — это просто примеры

Можно ли проверить, в каком наборе данных находится ресурс, с помощью одного запроса API?

Кажется возможным сделать с помощью трехэтапного запроса, такого как:

  1. Получить идентификатор версии: http://demo.ckan.org/api/3/action/resource_search?query=url:https://www.example.com/resources/datafile.csv
  2. Получите идентификатор пакета: http://demo.ckan.org/api/3/action/revision_show?id=de5707gg-5568-1291-83df-7a6e2a441396
  3. Получить содержащий набор данных: http://demo.ckan.org/api/3/action/package_show?id=de5707gg-5568-1291-83df-7a6e2a441396

В качестве альтернативы я смог использовать: https://demo.ckan.org/api/action/package_search Это позволяет мне получить все пакеты и информацию, содержащуюся внутри, а затем использовать javascript на странице для обработки результатов, это дает мне наборы данных, если они применимы.

Однако мне любопытно, можно ли это сделать в одном вызове API, а не делать несколько или полагаться на что-то вне CKAN для обработки (т.е. без использования Javascript, как во втором примере).

Я подумал, что можно было бы сделать что-то вроде: https://data.qld.gov.au/api/action/package_search?q=de5707gg-5568-1291-83df-7a6e2a441396, но он не ищет поля идентификатора? Я бы предпочел искать по URL-адресу, так как, к сожалению, я не обязательно знаю, с чего начинается идентификатор, и поиск пакета не имеет этого содержимого для поиска.


person boars    schedule 02.10.2015    source источник


Ответы (1)


Чтобы найти поле ID, вы можете передать его package_show в параметре fq, например:

https://data.gov.uk/api/3/action/package_search?q=&fq=id:e3939ef8-30c7-4ca8-9c7c-ad9475cc9b2f

Точно так же вы можете найти пакеты, которые имеют определенный URL-адрес ресурса с (обратите внимание на ")

https://data.qld.gov.au/api/3/action/package_search?fq=res_url:"https://www.dnrm.qld.gov.au/__data/assets/excel_doc/0005/282533/dnrm-gifts-and-benefits-june-2015.xlsx"

person Ross    schedule 02.10.2015
comment
Спасибо, Росс, ваш ответ хорош и даже использует экземпляр CKAN, который мы используем. ха-ха! Еще вопрос, если можно? Есть ли логика в шаблоне fq=res_url? Или их список, например group_name и т. д. grp_name (для имени группы) - person boars; 07.10.2015
comment
Вы хотите увидеть github.com/ ckan/ckan/blob/master/ckan/config/solr/ — это действительно могло бы быть лучше задокументировано. - person Ross; 07.10.2015