Estoy tratando de automatizar el proceso de configuración de un espacio de trabajo, un almacén de datos PostGIS y una capa en GeoServer utilizando la API REST de GeoServer.
Utilizando la excelente respuesta en Crear una capa en GeoServer usando REST Soy capaz de hacerlo, con una pega. Cuando creo el espacio de trabajo utilizando este código...
import requests, json
headers = {'Content-Type': 'application/json'}
auth = ('admin', 'geoserver')
url = "http://<my_geoserver>:8080/geoserver/rest/workspaces"
data = {"workspace": {"name": "blah"}}
r = requests.post(url, headers=headers, auth=auth, data=json.dumps(data))
... los Servicios están todos desmarcados en el Espacio de Trabajo recién creado:
Según Cómo configurar un espacio de trabajo en Geoserver utilizando Curl esta es una función que falta en la API REST de GeoServer.
Dado que los servicios están desmarcados, no puedo publicar una capa a través de la API REST de GeoServer:
url = 'http://<my_geoserver>:8080/geoserver/rest/workspaces/<workspaceName>/datastores/<dataStoreName>/featuretypes/'
data = {"featureType": {"name": "<layerName>","srs": "EPSG:4326","enabled": "true","store": {"@class": "dataStore","name": "<workspaceName>:<dataStoreName>"}}}
r = requests.post(url, headers=headers, auth=auth, data=json.dumps(data))
ya que la API responde con :Schema 'http://<workspaceName>:<layerName>' does not exist
.
Si selecciono manualmente las 4 casillas de Servicios en el Espacio de Trabajo recién creado, y luego vuelvo a ejecutar el código para crear una capa, la Capa se crea sin error.
¿Es posible automatizar completamente el proceso de creación de un espacio de trabajo y un almacén de datos, y luego crear capas dentro de ese almacén de datos y espacio de trabajo, a través de la API REST de GeoServer?