Особенности

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

Ограничение запросов

Лимитирование количества запросов, в основном, касаются использования API.

Для не зарегистрированных пользователей разрешены 500 запросов каждые полчаса. Итого: 24 000 в сутки.

Для зарегистрированных пользователей это количество значительно больше - 5000 запросов каждые полчаса. Итого: 240 000 в сутки.

Таким образом, наличие пользовательского токена полученного после регистрации и подтверждения email даёт вам неоспоримые преимущества.

В публичной зоне ограничения касаются служебных адресов не формирующих контент. Эти значения колеблются в пределах 5-10 запросов в минуту.

Со временем, более жёсткие требования коснутся и URI представляющих полезный контент. Поэтому лучше иметь аккаунт.

Содержимое ответа API

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

Максимально возможное количество объектов в списке - 20 шт.

Формат ответа API

За формирование REST API отвечает API Platform, поэтому эндпойнты проекта возвращают ответы в 3-х форматах:

  • vnd.openapi+json
  • ld+json
  • json

Наиболее информативные данные предоставляет ld+json, за формирование которого отвечает Hydra — облегченный словарь для создания веб-API на основе гипермедиа.

Пример ответа в формате ld+json (кликайте по стрелочкам):

{ "@context": "/api/contexts/Settlements", "@id": "/api/settlements/list", "@type": "hydra:Collection", "hydra:totalItems": 6453, "hydra:member": [ { "@id": "/api/settlements/1", "@type": "Settlements", "id": 1, "region": "50", "title": "143900, Московская область, город Балашиха", "requisites": { "okato": "46404000000", "oktmo": "46704000001", "fias_id": "27c5bc66-61bf-4a17-b0cd-ca0eb64192d6", "geo_lat": "55.796339", "geo_lon": "37.938199", "kladr_id": "5000003600000", "geoname_id": "579464" } } ], "hydra:view": { "@id": "/api/settlements/list?itemsPerPage=1&page=1", "@type": "hydra:PartialCollectionView", "hydra:first": "/api/settlements/list?itemsPerPage=1&page=1", "hydra:last": "/api/settlements/list?itemsPerPage=1&page=6453", "hydra:next": "/api/settlements/list?itemsPerPage=1&page=2" } }