Инструкция по работе с API для репозитория данных НЦСЭД
Введение
Данный документ представляет собой руководство по использованию API каталога данных, расположенного по адресу https://repository.nsedc.ru/. Платформа построена на базе CKAN (Comprehensive Knowledge Archive Network) — ведущего программного обеспечения с открытым исходным кодом для создания порталов открытых данных. API позволяет разработчикам и аналитикам программно взаимодействовать с каталогом: искать, получать метаданные и скачивать наборы данных.
Все запросы к API следует отправлять на базовый URL:
https://repository.nsedc.ru/api/3/action/
API возвращает данные в формате JSON.
Аутентификация
Для большинства операций, связанных с чтением данных (поиск, просмотр наборов данных), аутентификация и API-ключ не требуются. Запросы можно выполнять анонимно.
Если вам потребуются права на добавление или редактирование данных, вам необходимо будет использовать API-ключ. Обычно его можно найти в настройках вашего профиля на самом портале CKAN после авторизации. При наличии ключа его следует передавать в заголовке каждого запроса:
Authorization: YOUR_API_KEY
Основные концепции
- Набор данных (Package/Dataset): Основная единица каталога. Это коллекция, объединяющая метаданные (описание, название, теги) и связанные с ними ресурсы.
- Ресурс (Resource): Непосредственно сам файл с данными (например, CSV, XLSX, JSON), который является частью набора данных. У одного набора данных может быть несколько ресурсов.
- Организация (Organization): Издатель или владелец наборов данных (например, Росстат, Всемирный банк).
- Рубрика (Group): Тематическая категория, к которой может быть отнесен набор данных.
Базовые запросы к API
Ниже приведены примеры наиболее распространенных запросов для получения данных из каталога. Примеры показаны с использованием утилиты curl, но могут быть легко адаптированы для любого языка программирования или инструмента.
1. Получение списка наборов данных
Метод package_list возвращает полный список идентификаторов (ID) всех наборов данных в каталоге.
Запрос:
curl -s "https://repository.nsedc.ru/api/3/action/package_list"Пример ответа (фрагмент):
{
"help": "https://repository.nsedc.ru/api/3/action/help_show?name=package_list",
"success": true,
"result": [
"dannyye-po-finansovomu-rynku-krivaya-dokhodnosti",
"budushcheye-blagopoluchiye",
"tekushcheye-blagopoluchiye-v-razbivke-po-polu",
...
]
}2. Получение детальной информации о наборе данных
Метод package_show позволяет получить полную информацию (метаданные, список ресурсов, теги и т.д.) о конкретном наборе данных по его ID.
Запрос:
curl -s "https://repository.nsedc.ru/api/3/action/package_show?id=dannyye-po-finansovomu-rynku-krivaya-dokhodnosti"Пример ответа (фрагмент):
{
"success": true,
"result": {
"license_title": "Creative Commons Attribution",
"title": "Данные по финансовому рынку - кривая доходности",
"name": "dannyye-po-finansovomu-rynku-krivaya-dokhodnosti",
"notes": "Кривая доходности отражает взаимосвязь между рыночными ставками...",
"resources": [
{
"id": "5a995f3a-230b-4835-9b98-386d9f82442c",
"name": "YC.zip",
"format": "ZIP",
"url": "https://datalakeiepru-s3-storage-public.storage.yandexcloud.net/ecb/data/zip/YC.zip"
},
{
"id": "57e98c67-79c5-48bd-8492-1043e75e6602",
"name": "YC.parquet",
"format": "PARQUET",
"url": "https://datalakeiepru-s3-storage-public.storage.yandexcloud.net/ecb/data/parquet/YC.parquet"
}
],
"tags": [...],
"organization": {...}
}
}Ключевым полем здесь является resources, которое содержит массив ссылок на фактические файлы данных.
3. Поиск наборов данных
Метод package_search является мощным инструментом для поиска данных по различным критериям.
Поиск по ключевому слову
Параметр q используется для полнотекстового поиска по метаданным.
Запрос (поиск по слову “благополучие”):
curl -s "https://repository.nsedc.ru/api/3/action/package_search?q=благополучие&rows=1"Фильтрация по организации
Параметр fq (filter query) позволяет фильтровать результаты. Например, для поиска данных, опубликованных Росстатом, используется fq=organization:rosstat.
Запрос:
curl -s "https://repository.nsedc.ru/api/3/action/package_search?fq=organization:rosstat&rows=2"4. Получение списка организаций
Метод organization_list возвращает список всех организаций, публикующих данные в каталоге.
Запрос:
curl -s "https://repository.nsedc.ru/api/3/action/organization_list?all_fields=true&limit=2"Параметр all_fields=true позволяет получить полную информацию о каждой организации, а не только ее ID.
5. Получение списка рубрик (групп)
Аналогично, метод group_list возвращает список тематических рубрик.
Запрос:
curl -s "https://repository.nsedc.ru/api/3/action/group_list?all_fields=true&limit=2"