7.1 Запрос данных из ГАС через REST API
С помощью API «Портала ГосЭДО» можно получить данные из справочника версии ГАС, установленной на «Портале ГосЭДО» на момент запроса.
Для отправки команды посредством POST необходимо использовать адрес «http://server-url/api/gas-reference», где «server-url» - адрес доступа к используемому экземпляру «Портала ГосЭДО». Команда передается в параметре «action».
Команда: gettableItems
Действие:
Возвращает данные организаций согласно версии ГАС, установленной на «Портале ГосЭДО» на момент запроса.
Параметры (для отбора с фильтрацией и делением по страницам):
filter:{"organization":"Минцифры"}
sort:{"organization":"asc/desc"}
paginator:{"page":1,"limit":10}
Возвращаемый результат:
Возвращает данные в формате json, которые включают массив tableItems с информацией об организациях из ГАС.
Пример вызова в консоли без фильтрации:
curl 'http://10.77.142.21:84/api/gas-reference' -H 'Content-Type: application/json' -d '{"action": "gettableItems"}'
Пример вызова в консоли с фильтрацией:
curl 'http://10.77.142.21:84/api/gas-reference' -H 'Content-Type: application/json' -d '{"action": "gettableItems",
"filter": {"title": "Аппарат", "isActive": true}, "sort": {"guid": "asc"}, "paginator": {"page":1,"limit":10}}'
Пример вызова в JavaScript:
<script>
async function fetchAdapterService(endpoint, myAction, myParams, saveAsFile = 'NONE') {
let address = document.querySelector('#address');
RESTAPIURL = 'http://10.77.142.21:84/' + endpoint;
myParams['action'] = myAction;
if (myParams['xml']) {
var formData = new FormData();
Object.entries(myParams).forEach(function([key, value]) {
formData.append(key, value);
});
var REQUEST = {
method: 'POST',
body: formData,
}
} else {
var REQUEST = {
method: 'POST',
body: JSON.stringify(myParams),
headers: {
'Content-Type': 'application/json'
},
}
}
const response = await fetch(RESTAPIURL, REQUEST)
.catch((error) = >{});
const fileName = ((saveAsFile == 'NONE') ? 'response.json': saveAsFile);
if (response.status == 200) {
let file = await response.blob();
let link = document.createElement("a");
link.href = window.URL.createObjectURL(file);
link.download = fileName;
link.click();
}
}
</script>
<!--- REST API Портала ГосЭДО: получение ГАС -->
<script>
async function getGAS() {
myParams = {
sort: {guid: 'asc'},
filter: {title: 'Аппарат', },
paginator: {page: 1,limit: 3},
}
fetchAdapterService('/api/gas-reference', 'gettableItems', myParams, 'get-gas.json');
}
</script>
<button class="header2" onclick="getGAS()">Получить данные ГАС</button>
С выполнением демонстрационного примера по описанной функции можно ознакомиться в разделе 4.11 Демонстрация получения данных ГАС.