我正在CKAN 2.8上运行Mirth 3.6.1,并且是一个新手,我遇到了一个问题:是否可以通过API请求访问CKAN中私有数据集中的资源?我似乎做不到。
我有一个拥有公开数据集的组织,我可以通过API路由器通过Mirth到达正确的Mirth通道,并像平常一样通过API请求从CKAN获取数据。但是,如果我将数据集设为私有,那么一切都会崩溃。即使我使用正确的API密钥。虽然,这似乎没有什么不同。无论我是否使用API密钥(或者甚至是正确的密钥),我都能获得成功。
请求中包含的API密钥是系统管理员的密钥。
当我通过CKAN端点直接访问CKAN资源并且数据集是公共的时,我得到以下响应:
{
"help": "https://URL/api/3/action/help_show?name=resource_search", (URL instead of real url)
"success": true,
"result": {
"count": 1,
"results": [
{
"mimetype": null,
"cache_url": null,
"state": "active",
"hash": "REDACTED__", (sensitive data)
"description": "",
"format": "",
"url": "https://URL/datastore/dump/0696c0a1-b249-4fd5-ba80-caf7046a650b", (URL instead of real url)
"datastore_active": true,
"created": "2019-03-19T00:30:04.313593",
"cache_last_updated": null,
"package_id": "11211598-34f8-4d67-ab34-b7fd590ae08d",
"mimetype_inner": null,
"last_modified": null,
"position": 1,
"revision_id": "17b85d36-4ec1-4645-b9b1-dcfe310a54e6",
"size": null,
"url_type": "datastore",
"id": "0696c0a1-b249-4fd5-ba80-caf7046a650b",
"resource_type": null,
"name": "REDACTED" (sensitive data)
}
]
}
}
当数据集是私有的时,无论我是否包含API密钥(甚至不是真正的api密钥),我都会得到以下响应:
{
"help": "https://URL/api/3/action/help_show?name=resource_search",
"success": true,
"result": {
"count": 0,
"results": []
}
}
那么,如何对私有数据集中的资源进行resource_search?
谢谢。
答案 0 :(得分:2)
是的,您可以通过使用数据集中的include_private:True来实现
请参见以下链接 https://docs.ckan.org/en/2.8/api/index.html#ckan.logic.action.get.package_search