有没有办法通过API调用访问私有数据集

时间:2019-03-19 16:03:00

标签: api backend ckan mirth

我正在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?

谢谢。

1 个答案:

答案 0 :(得分:2)

是的,您可以通过使用数据集中的include_private:True来实现

请参见以下链接 https://docs.ckan.org/en/2.8/api/index.html#ckan.logic.action.get.package_search