Для автоматизация задач в NextGIS Web (NGW) – от получения списка ресурсов до массовой загрузки данных – нужно использовать программный интерфейс NextGIS Web API. Экосистема инструментов вокруг NextGIS Web включает как официальную документацию API, так и несколько библиотек, которые помогают работать с сервером на разных уровнях. Работать с API можно на разных языках программирования, в том числе на Python.
Документация NextGIS Web API
Это интерактивная, автоматически обновляемая спецификация HTTP API (Swagger/OpenAPI). Она описывает:
- структуру REST‑эндпоинтов NGW;
- параметры запросов и форматы ответов;
- операции с ресурсами: веб‑карты, стили, слои, группы, подключения, вложения и т. д.
Все Python‑библиотеки и скрипты, работающие с NextGIS Web, опираются именно на эту документацию. Стандартный способ использования: открыть документацию и в поиске найти нужный запрос: create user, create resource, update feature.
Как устроено API NextGIS Web: сущности и подходы
API NGW построено вокруг нескольких ключевых идей. Понимание этих подходов помогает быстрее ориентироваться в документации и эффективнее автоматизировать работу.
Универсальный ресурсный интерфейс
Практически всё в NGW – это ресурс: слой, стиль, веб‑карта, группа, подключение. У каждого ресурса есть идентификатор – его порядковый номер – и ко всем ресурсам можно обратиться единым способом:
/api/resource/{id}
Методы HTTP
Работа с API осуществляется с помощью стандартных методов:
- GET
- POST
- PUT
- DELETE
Это упрощает интеграцию и делает API совместимым с любыми HTTP‑клиентами.
Группы эндпоинтов
API логично делится на несколько тематических блоков:
- Ресурсы – универсальный CRUD для всех сущностей.
- Векторные слои и данные – объекты (features), фильтрация, массовые операции.
- Растровые слои и данные – загрузка, метаданные, тайлы.
- Стили – создание и привязка стилей.
- Веб‑карты – работа с деревом элементов.
- Вложения – загрузка и скачивание файлов.
- Подключения – внешние источники данных (WMS, PostGIS).
- Системные сервисы – авторизация, информация о сервере.
- И многое другое.
Эта структура отражена в документации и помогает быстро находить нужные операции.
Обзор инструментов
Приводим перечень нескольких вспомогательных инструментов, которые упростят работу с API.
| Библиотека | Для чего подходит |
| pyngw | автоматизация API |
| nextgisweb_api_helpers | примеры использования API, обучение, быстрые прототипы |
pyngw
Библиотека абстракции API. Выстроена поверх API, даёт ещё более простые методы работы с ним, не погружая в детали запросов. Подходит для реальных задач, поддерживает удобный объектный интерфейс и закрывает большинство типовых сценариев работы с NGW.
Пример использования pyngw:
from pyngw import Pyngw
# Подключаемся к серверу NextGIS Web
# Можно использовать логин/пароль или работать как гость
ngw = Pyngw(
ngw_url="https://sandbox.nextgis.ru",
login="administrator",
password="demodemo"
)
# Создаём новую группу ресурсов
group_id = ngw.create_resource_group(
parent_id=0,
display_name="Пример группы"
)
print(f"\nСоздана группа с id = {group_id}")
# Загружаем векторный слой (например, GeoJSON)
# Имя слоя можно не указывать – оно будет сгенерировано автоматически
layer_id = ngw.upload_vector_layer(
filepath="data.geojson",
group_id=group_id,
display_name="Мой слой"
)
print(f"Загружен векторный слой с id = {layer_id}")
# Получаем количество объектов в слое
count = ngw.get_feature_count(layer_id)
print(f"Количество объектов в слое: {count}")
Что делает этот код:
- подключается к серверу NGW;
- создаёт группу ресурсов;
- загружает векторный слой;
- получает количество объектов в слое.
Этот пример даёт представление о том, как устроена работа с NextGIS Web через Python, и помогает сделать первые шаги без лишних сложностей.
nextgisweb_api_helpers
Набор готовых примеров и утилит, которые демонстрируют, как работать с API напрямую.
Эти «хелперы» не заменяют библиотеку pyngw, это скорее справочник по практическим сценариям: добавить слой на веб‑карту, загрузить файл, создать ресурс и т. д.
В nextgisweb_api_helpers используются те же эндпоинты, что описаны в документации NGW, что помогает лучше понять, как формируются запросы.
Пример использования nextgisweb_api_helpers:
# Работаем в песочнице sandbox.nextgis.com
# Для работы понадобится:
# - id веб-карты
# - id стиля карты
import requests
ngw_host = 'https://sandbox.nextgis.com'
auth = ('administrator','demodemo')
webmap_id = 5
layer_style_id = 12
api_url = ngw_host + '/api/resource/' + str(webmap_id)
# Get Web Map contents
resp = requests.get(api_url, auth=auth, timeout=30)
webmap_json = resp.json()['webmap']
# Add a new Web Map layer (i.e. style)
new_layer = {
"item_type": "layer",
"display_name": "madcity",
"layer_enabled": True,
"layer_identifiable": True,
"layer_adapter": "image",
"layer_style_id": layer_style_id,
}
webmap_json["root_item"]["children"].append(new_layer)
payload = {"webmap": webmap_json}
# Send new payload
resp = requests.put(api_url, auth=auth, json=payload, timeout=30)
if resp.status_code != 200:
print(resp.text)
Эта библиотека полезна как справочник. Например, можно взять готовый пример добавления слоя (стиля) на веб-карту и адаптировать его под свои нужды.
Автоматизируйте работу с NextGIS Web уже сегодня!
Хотите быстрее выполнять рутинные операции, строить собственные сценарии обработки данных и глубже понять возможности NextGIS Web? Начните с изучения документации API и выберите подходящую библиотеку:
- pyngw – если не хотите погружаться в детали API NGW;
- nextgisweb_api_helpers – для обучения и быстрых прототипов.
Разобрались с документацией? Попробуйте выполнить свои первые запросы в песочнице – это безопасная среда для отладки и экспериментов.
Готовы перейти к реальным задачам? Разверните свою Веб ГИС и начните использовать все возможности NextGIS Web на практике.
Остались вопросы? Задайте их в сообществе NextGIS в Telegram.