通过单个API调用获取CKAN中资源的数据集ID /名称?

boa*_*ars 3 api resources dataset ckan

请注意,帖子中包含的URL不是真实的 - 只是示例

是否可以通过单个api查询检查哪些数据集/ sa资源?

似乎可以通过3步查询来完成,例如:

  1. 获取修订版ID:http://demo.ckan.org/api/3/action/resource_search?query = url:https://www.example.com/resources/datafile.csv
  2. 获取包ID: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来处理结果,这给了我数据集/ s(如果有)适用.

但是我很好奇这是否可以在单个API调用中完成,而不是做多个或不得不依赖CKAN以外的东西来处理(即不使用第二个例子中的Javascript).

我认为可能会做类似的事情:https: //data.qld.gov.au/api/action/package_search?q = de5707gg-5568-1291-83df-7a6e2a441396 但它似乎没有搜索ID字段?我更喜欢通过URL搜索,因为我不一定知道ID是从哪个开始的,并且包搜索没有要搜索的内容.

Ros*_*oss 6

要搜索ID字段,您可以将其传递给fq参数中的package_show,如:

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"

  • 你想看到https://github.com/ckan/ckan/blob/master/ckan/config/solr/schema.xml#L80-L153 - 这确实可以通过更好地记录来实现。 (2认同)