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 Демонстрация получения данных ГАС.

Последнее изменение: Friday, 12 July 2024, 16:32