API Открытых данные
Доступ к API
API не требует специального доступа.
Общие принципы
Данное API преследует цели фильтрации открытых данных на портале Роструд.
На портале Роструд расположены Открытые данные (далее по тексту - ОД), реализованные согласно "Методическим рекомендациям (Версия 3.0) по публикации открытых данных государственными органами и органами местного самоуправления и технические требования к публикации открытых данных".
Получение справочников
Паспорта наборов данных не могут быть отфильтрованы и их можно получить по ссылкам, сгенерированным согласно Методическим рекомендациям.
Список паспортов наборов данных:
XML -
http://www.rostrud.ru/opendata/list.xml
JSON -
http://www.rostrud.ru/opendata/list.json
CSV -
http://www.rostrud.ru/opendata/list.csv
Описание структуры набора данных коректных наборов можно получить по ссылкам вида:
XSD - http://www.rostrud.ru/opendata/7712345678-dataset318/structure-20150611T0000.xsd
JSON - http://www.rostrud.ru/opendata/7712345678-dataset318/structure-20150611T0000.json
CSV - http://www.rostrud.ru/opendata/7712345678-dataset318/structure-20150611T0000.csv
Эти ссылки можно получить на странице паспорта набора данных.
Получение данных
Методы фильтрации Web-API исполняются поверх выдачи наборов ОД. То есть это те же открытые данные, только к ним применима фильтрация.
Эти данные можно порцинально разделить при помощи пагинации, а также получить конкретные, отфильтровав их.
Для пагинации необходимо указать GET параметры:
nPageSize - кол-во элементов на одну страницу;
iNumPage - номер страницы.
Например:
http://www.rostrud.ru/opendata/7712345678-dataset318/data-20160616T0000-structure-20150611T0000.xml?nPageSize=4&iNumPage=2
В структуре данных XML добавится блок с описанием элементов пагинации:
<pagination>
<NavPageSize>4</NavPageSize>
<NavPageNomer>4</NavPageNomer>
<NavRecordCount>87</NavRecordCount>
<NavPageCount>22</NavPageCount>
<pagination>
где:
NavPageSize - количество элементов на страницу;
NavPageNomer - номер текущей страницы;
NavRecordCount - общее количество элементов для текущего запроса;
NavPageCount - общее количество страниц
Такой же блок будет сгенерирован и для формата JSON:
"pagination":{
"NavPageSize":4,
"NavPageNomer":2,
"NavRecordCount":"87",
"NavPageCount":22
}
Для CSV формата данные о пагинации сгенерированы не будут.
Фильтрация данных
Для фильтрации необходимо указать POST/GET параметры:
filter[name] - фильтрация по названию элемента; минимум символов - 3, маска запроса "some%";
filter[subject] - название субъекта РФ; в разных наборах эти свойства могут называться SUBJECT, REGION. Фильтрация будет применена, если свойство существует для данного набора, - точное соответствие. Например: «Томская область».
filter[inn] - ИНН организации; в разных наборах эти свойства могут называться INN, IDN, INN_NUM. Фильтрация будет применена, если свойство существует для данного набора, - точное соответствие. Например: «7017026930».
Примеры запросов:
http://www.rostrud.ru/opendata/7712345678-chekplan/data-20160527T0000-structure-20160101T0000.xml?nPageSize=10&filter[subject]=Томская область&filter[name]=общество с ограниченной ответственностью
http://www.rostrud.ru/opendata/7712345678-chekplan/data-20160527T0000-structure-20160101T0000.xml?filter[inn]=7017026930
http://www.rostrud.ru/opendata/7712345678-chekplan/data-20160527T0000-structure-20160101T0000.xml?nPageSize=10&iNumPage=2&filter[name]=Закрытое акционерное общество