API для разработчиков
API для наборов открытых данных

Для взаимодействия с внешними системами реализованы веб-сервисы, позволяющие передавать внешним информационным системам содержимое выбранного набора открытых данных, а также перечень наборов открытых данных, соответствующих параметрам запроса.

Веб-сервисы реализованы в соответствии с архитектурным подходом REST: запрос отправляется на заданный URI методом GET. Ответ возвращается в формате JSON. Данные ответа кодируются в формате UTF-8.

Примеры запросов

Запросы для получения справочников
  • список всех наборов с данными http://data.mosreg.ru/data.json
  • получение списка всех рубрик сайт http://data.mosreg.ru/api/datasets/voc.json?vid=topic
  • получение всех форматов http://data.mosreg.ru/api/datasets/voc.json
  • вывод всех наборов http://data.mosreg.ru/api/datasets/list.json
  • вывод всех организаций http://data.mosreg.ru/api/organization/list.json
Запросы для поиска наборов
  • вывод всех наборов для Организации с кодом 44 (Главное управление ветеринарии Московской области). http://data.mosreg.ru/api/datasets/list.json?organization=44 Код организации можно получить из следующего запроса (поле 'organization_id'): http://data.mosreg.ru/api/organization/list.json
  • вывод всех наборов для формата Карта с кодом 21 http://data.mosreg.ru/api/datasets/list.json?format=21 Код формата можно получить из следующего запроса (поле 'tid'): http://data.mosreg.ru/api/datasets/voc.json
Запросы для получения данных набора
  • получение паспорта определенного набора данных по ID http://data.mosreg.ru/api/3/action/package_show?id=3c8d6f54-6e28-41f4-93ed-cbf32fa92d1c Нужный ID можно получить из следующего запроса (поле 'identifier'): http://data.mosreg.ru/data.json
Параметры запроса для получения данных набора
  • Запрос данных в формате JSON, 'resource_id' - ID ресурса http://data.mosreg.ru/api/action/datastore/search.json?resource_id=2c6a8799-9535-4aaf-9be3-058f31f9d69b
  • Запрос данных в формате XML, 'resource_id' - ID ресурса http://data.mosreg.ru/api/action/datastore/search.xml?resource_id=2c6a8799-9535-4aaf-9be3-058f31f9d69b
  • 'limit' - максимальное количество строк (по умолчанию -100) http://data.mosreg.ru/api/action/datastore/search.json?resource_id=2c6a8799-9535-4aaf-9be3-058f31f9d69b&limit=10
  • 'filters' - фильтр с условием для выборки данных, где 'internet_sayt_mfc' - название столбца набора данных, а 'mfc.zvenigorod.ru' - значение http://data.mosreg.ru/api/action/datastore/search.json?resource_id=d3860fc2-2e7b-48d6-9627-664909d1c95c&filters[internet_sayt_mfc]=mfc.zvenigorod.ru&limit=10
  • 'offset' - смещение относительно первой строки набора данных. Если указать значение '10', то в полученной выборке записи будут начинаться с 11-ой строки. http://data.mosreg.ru/api/action/datastore/search.json?resource_id=2c6a8799-9535-4aaf-9be3-058f31f9d69b&offset=10&limit=10
  • 'fields' - название полей, которые будут возращены в запросе (по умолчанию все поля в оригинальной сортировке). Названия разделяются запятой. http://data.mosreg.ru/api/action/datastore/search.json?resource_id=d3860fc2-2e7b-48d6-9627-664909d1c95c&fields=no,internet_sayt_mfc&limit=10 Чтобы узнать список полей для набора, нужно сделать запрос к ресурсу без дополнительных параметров: http://data.mosreg.ru/api/action/datastore/search.json?resource_id=d3860fc2-2e7b-48d6-9627-664909d1c95c В ответе будет содержаться элемент 'fields', который содержит массив с полями набора. Для каждого поля в данном случае нас интересует значение 'id'.

  • 'sort' - сортировка данных (колонки через запятую - “fieldname1, fieldname2 desc"). В следующем запросе для набора данных с ID d3860fc2-2e7b-48d6-9627-664909d1c95c выбирается 10 первых записей, у которых показываются только поля 'no' и 'internet_sayt_mfc', результат сортируется по полю 'no' в прямом порядке. http://data.mosreg.ru/api/action/datastore/search.json?resource_id=d3860fc2-2e7b-48d6-9627-664909d1c95c&fields=no,internet_sayt_mfc&limit=10&sort[no]=asc
  • 'query' - текстовый запрос, поиск во всех полях ресурса данных. В следующем запросе для набора данных с ID d3860fc2-2e7b-48d6-9627-664909d1c95c выполняется поиск строк, столбцы которых содержат в качестве значение подстроку 'zvenigorod', в результате отображаются значения для полей 'no' и 'internet_sayt_mfc'. http://data.mosreg.ru/api/action/datastore/search.json?resource_id=d3860fc2-2e7b-48d6-9627-664909d1c95c&fields=no,internet_sayt_mfc&query=zvenigorod
  • 'join' - для объединения данных из различных ресурсов на данном сайте. В случае, если существует два и более наборов, которые связаны некоторым образом, то с помощью параметра 'join' мы можем объединить их данные. В запросе указывается ID каждого ресурса (набора данных), при этой для каждого из них указывается алиас (псевдоним), в нашем случае это 'pop' и 'size'. Мы можем отфильтровать строки, которые нам нужно получить, для этого можно использовать параметр filters. Первое значение в квадратных скобках [pop] указывает на нужный ресурс, второе значение [no] - название столбца (поля), после знака равно указано значение. Далее указывается для каждого ресурса параметр join[<алиас ресурса>], после знака равенства указывается то поле ресурса, значение которого объединяет данный ресурс с другими, в нашем случае это поле 'no'. В результате для каждой записи будут представлены все выбранные поля (либо вообще все, если не было конкретно указано, какие поля нужно выбирать) из каждого ресурса. В случае, если названия полей из разных ресурсов совпадут, то будет выбрано значение поля из последнего указанного в запросе ресурса. http://data.mosreg.ru/api/action/datastore/search.json?resource_id[pop]=d3860fc2-2e7b-48d6-9627-664909d1c95c&resource_id[size]=d3860fc2-2e7b-48d6-9627-664909d1c95c&filters[pop][no]=1&join[pop]=no&join[size]=no