23 votos

Creación de capas en GeoServer mediante REST

Como parte de una posible solución a ¿GeoServer WFS Row Level Security? Quiero crear una capa en GeoServer vía REST que suministre una sentencia SQL junto con un userid.

Creo que lo haría crear un tipo de característica y publicarlo. Necesito hacer todo esto en REST.

¿Alguien tiene algún ejemplo de código?

54voto

studiothat Puntos 418

Hay muchas cosas que se pueden hacer con la API REST de GeoServer que no están específicamente documentadas y para las que no hay ejemplos de código. Esta es la estrategia para abordarlas.

En primer lugar, comience con el ejemplos en la documentación . Asegúrese de que está familiarizado con la forma de crear una nueva capa o espacio de trabajo utilizando un POST HTTP con XML o JSON.

A continuación, a través de la interfaz de usuario de GeoServer, cree manualmente el objeto que necesite para el que no exista documentación (en este caso, un tipo de característica).

Por último, navegue manualmente hasta el índice REST de GeoServer ( http://your-server/rest o http://your-server/geoserver/rest ). Navegue por el índice hasta encontrar el tipo de característica que acaba de crear. Añada ".xml" o ".json" a la URL de este recurso y verá su representación XML o JSON.

Esta representación es lo que habría necesitado POST para crear el tipo de característica a través de la API. La URL de la representación es la URL a la que habría tenido que enviar un POST (por ejemplo, http://your-server/geoserver/rest/..../myFeatureTypeName.json ).

Puede utilizar esta estrategia para averiguar cómo crear o configurar mediante programación cualquier recurso en GeoServer.

16voto

1.61803 Puntos 36

Sé que es una pregunta antigua, pero por si alguien está tan confundido como yo. El importante parte es que no se puede crear una capa a partir del http://geoserver/rest/layers punto final.

Si desea añadir una capa vectorial, se hace a través del recurso tipo de característica:

http://docs.geoserver.org/stable/en/user/rest/api/featuretypes.html

Un POST a:

/workspaces/<ws>/datastores/<ds>/featuretypes

donde es el espacio de trabajo en el que desea que se encuentre el tipo de característica, y la fuente de datos a utilizar creará un nuevo tipo de característica vectorial, es decir, una capa.

Si usted se está preguntando acerca de lo que puede POST, @Rohan es correcto, la forma más fácil es consultar por un tipo de característica existente, IE un http GET a

/workspaces/<ws>/datastores/<ds>/featuretypes/<ft>.json 

que devolverá un tipo de característica existente como json.

1voto

jhwist Puntos 208

Su mejor referencia está en la guía del usuario. https://docs.geoserver.org/stable/en/user/rest/index.html#rest

1voto

swelljoe Puntos 1163

Si entiende Java, puede echar un vistazo a este sencillo código que utiliza REST para realizar todo tipo de operaciones en GeoServer.

0voto

Adam Puntos 11

Para añadir una capa, debe definirse un almacén de datos y un tipo de característica. Suponiendo que ya estén definidos junto con un estilo (como se describe en la guía en http://boundlessgeo.com/2012/10/adding-layers-to-geoserver-using-the-rest-api/ para añadir una capa a PUT debe enviarse a geoserver en:

http://geoserver.host/geoserver/rest/layers/NEW_LAYER_NAME

Con un contenido de datos como:

<layer>
  <name>NEW_LAYER_NAME</name>
  <type>VECTOR</type>
  <defaultStyle>
    <name>myStyle</name>
  </defaultStyle>
  <resource class="featureType">
    <name>myFeature</name>
  </resource>
</layer>

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X