Обложка канала

Ivan Begtin

3903 @begtin

I am focused on Open Data, Procurement, e-Government, Open Government and other tech stuff

Ivan Begtin

4 года назад
Открыть в
Я довольно много писал про недокументированные API госорганов [1] и упоминал похожий гражданский проект в Германии [2]. Так вот скажу что этих самых недокументированных API к государственным и окологосударственным системам, сайтам, порталам значительно больше чем может показаться со стороны. Причём есть всего несколько причин их появления: - наличие API как продукта редкие случаи, когда API изначально было предусмотрено, но в силу многих причин его создатель не может, не умеет или не хочет его нормально документировать. - наличие API как следствие архитектуры приложения, как правило это следствие применение подходов вроде JAMSTACK когда вызовы к API осуществляются из Javascript на фронтэнде - наличие API по умолчанию это когда API есть у продукта который используется для конкретной цели, но его пользователь об этом не знает Всех этих API великое, нет огромное количество. Какое-то время назад я размещал на сервисе Postman коллекцию с документацией таких API [3]․ Там их немного, 6 государственных систем, около пары-тройки десятков точек подключения. Все они идут по 1-й или по 2-й категории API, а есть немало API которые просто являются частью продукта и вот их примеры. Есть такой продукт DSpace используемый ВУЗами для создания репозиториев научных результатов. Он много где установлен в мире, в основном университетами, но даже открытые библиотека НАТО и Мирового банка тоже работают на DSpace. В России он используется, например, в СПбГУ. У DSpace по умолчанию есть интерфейс раскрытия данных по стандарту OAI-PMH, это такой стандарт архивации научных и библиотечных знаний. Поэтому, к примеру, у инсталляции DSpace есть API интерфейс для доступа [4], подробнее о нём и как работать с протоколом OAI-PMH легко гуглится. Специалисты, как правило, о таких интерфейсах знают заранее. Неспециалисты очень удивляются когда неожиданно обнаруживают. Другой пример, у Wordpress есть API, идущее практически по умолчанию в новых инсталляциях. Оно сводится к точке подключения /wp-json/ через который можно выкачать. Это полезно, например, для цифровой архивации. Я специально для такого сделал утилиту wparc [5] позволяющую архивировать данные из инсталляций Wordpress. В России, например, Wordpress, используется на сайте Госкомиссии по Арктике и, конечно, wp-json там активирован [6]. Таких примеров много, они не описываются на порталах открытых данных и инициативах вроде bund.dev или нашей коллекции госAPI. Ссылки: [1] https://t.me/begtin/3550 [2] https://t.me/begtin/4194 [3] www.postman.com/infocul…0fa06e36 [4] https://dspace.spbu.ru/oai/ [5] https://github.com/ruarxive/wparc [6] https://arctic.gov.ru/wp-json/ #api #openapi #government #undocumented
Ivan Begtin

Продолжая тему недокументированных государственных API приведу ещё один живой пример с некоторыми техническими подробностями. Вот, в Санкт-Петербурге есть портал бюджетных инициатив граждан [1]. В целом неплохой, современно выглядящий и с примерно 29 тысячами опубликованных инициатив. Когда я в целях архивации региональных сайтов бюджетов пытался его заархивировать то столкнулся с тем что у него нет веб-страниц в нормальном понимании. Вместо этого даннные отдаются через API по вполне легко находимой ссылке /api/v2/budget/initiatives [2] в коде страницы, в HTML коде сайта видно что что API передаётся параметр offset для перехода к следующей порции данных и limit для ограничений числа получаемых данных. В результате все инициативы можно выкачать простым перебором. Запросы к API возвращают в JSON формате общее число объектов в поле total_count и список объектов в поле objects в каждом ответе. Особенность в том что это типовая задача. Не только на этом сайте и не только в этом API данные публикуются именно таким…

Telegram