ESRI JS API 4.9+ и Koop: службы не загружаются из-за избыточных параметров URL
JS API влияет: 4.9, 4.10 JS API в порядке: < 4.8
после обновления нашего приложения до 4.9 функциональные слои, обслуживаемые с сервера Koop, не загружаются. Я отследил это до запроса, который запрашивает количество функций.
Давайте рассмотрим пример сервиса Koop на сайте Koop
let koopServiceUrl = 'http://koop.dc.esri.com/github/smartchicago/chicago-atlas/db::import::zipcodes/FeatureServer/0'
Теперь журнал в окне разработчиков Chrome покажет 2 запроса. - один для определения слоя, который работает нормально (200) - один для счетчика объектов, который возвращает 404 (см. ниже)
Обратите внимание, что ошибочный запрос имеет дублирующее значение индекса слоя в URL. Если я удалю /0
из определяющего URL в koopServiceUrl
, слой загружается нормально. В версии 4.8 вышеуказанный сервис работает нормально, и запрос на количество объектов правильно отформатирован с использованием только одного значения индекса слоя в параметрах URL.
1 ответ
Похоже, JS API > 4.8 должен иметь rest/services
в URL слоя объектов. Самые последние версии Koop включают дополнительный набор маршрутов, которые включают этот дополнительный фрагмент URL. Например:
Например, маршрут:
/file-geojson/:id/FeatureServer/:layer/:method
имеет функционально эквивалентную версию с rest/services
:
/file-geojson/rest/services/:id/FeatureServer/:layer/:method
Если вы используете этот второй маршрут, JS API будет работать как положено.