Есть ли способ получить доступ к частным наборам данных через вызов API - PullRequest
1 голос
/ 19 марта 2019

Я запускаю Mirth 3.6.1 с CKAN 2.8 и, будучи новичком в этом, я столкнулся с проблемой: есть ли способ получить доступ к ресурсам в частных наборах данных в CKAN через запросы API?Кажется, я не могу этого сделать.

У меня есть организация с общедоступным набором данных, и я могу пройти через Mirth через API-маршрутизатор к нужному каналу Mirth и получить данные из CKAN, как обычно, сзапрос API.Но если я сделаю набор данных частным, все это развалится.Хотя я использую правильный 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 Ответ

2 голосов
/ 15 апреля 2019

Да, вы можете сделать это, используя include_private: True в наборе данных

Пожалуйста, смотрите ссылку ниже https://docs.ckan.org/en/2.8/api/index.html#ckan.logic.action.get.package_search

...