Skip to content

5. Capas

Rafael López Torres edited this page Jan 7, 2018 · 8 revisions

Cada capa (Layer) representa un recursos. Es la entidad objetivo de almacenamiento del sistema.

Una capa queda definida por el siguiente JSON:

{
  "data": "string: datos a almacenar",
  "description": "string: descripción de los datos",
  "format": "GEOJSON | GEOJSON_CSS | WKT | GML | KML | TOPO_JSON | CUSTOM_TEXT",
  "id": "string: identificador",
  "lastUpdate": "última fecha de modificacion: por ejemplo 2017-12-15T11:20:38.987Z",
  "name": "string: nombre de la capa (no puede quedar vacío)",
  "openData": true,
  "projection": "string: proyección correspondiente a los datos"
}

API

Se puede acceder a la documentación completa en la url http://localhost:8080/swagger-ui.html del propio despliegue.

Para poder acceder a los recursos ofrecidos para usuario se debe estar autenticado con el ROL necesario. A continuación se detalla la API disponible para Usuarios.


GET /layers

Obtiene, de manera paginada, todas las capas almacenadas en el sistema

Cabeceras Autorización Respuesta Query Param
Content-Type: application/json Authorization: Bearer token STORE_ADMIN o DATA_MANAGER 200 Página page, size, sort spring page and sorting. name: filtra por nombre de capa. only-metadata: obtiene solo metadatos de las capas. (valor por defecto true)

Ejemplo de respuesta:

{
  "content": [
    {
      "data": "string", //cadena vacía si only-metadata= true
      "description": "string",
      "format": "GEOJSON",
      "id": "string",
      "lastUpdate": "2017-12-26T08:07:52.050Z",
      "name": "string",
      "openData": true,
      "projection": "string"
    }
  ],
  "first": true,
  "last": true,
  "number": 0,
  "numberOfElements": 0,
  "size": 0,
  "sort": {},
  "totalElements": 0,
  "totalPages": 0
}

GET /opendata/layers

Obtiene, de manera paginada, todas las capas opendata almacenadas en el sistema. Son capas de libre acceso para todo el mundo, es decir, este recurso no requiere autenticación ni autorización.

Cabeceras Autorización Respuesta Query Param
Content-Type: application/json NO REQUERIDA 200 Página page, size, sort spring page and sorting. only-metadata: obtiene solo metadatos de las capas. (valor por defecto true)

Ejemplo de respuesta:

{
  "content": [
    {
      "data": "string", //cadena vacía si only-metadata= true
      "description": "string",
      "format": "GEOJSON",
      "id": "string",
      "lastUpdate": "2017-12-26T08:07:52.050Z",
      "name": "string",
      "openData": true,
      "projection": "string"
    }
  ],
  "first": true,
  "last": true,
  "number": 0,
  "numberOfElements": 0,
  "size": 0,
  "sort": {},
  "totalElements": 0,
  "totalPages": 0
}

GET /layers/{id}

Obtiene la capa indicada.

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN DATA_MANAGER o usuario con acceso otorgado de lectura 200 (Layer) id: identificador del recurso

Ejemplo de respuesta:

{
  "data": "string: datos de la capa en formato GEOJSON",
  "description": "string",
  "format": "GEOJSON",
  "id": "5a3d276e99b0c811e95c4340",
  "lastUpdate": "2017-12-26T08:07:52.308Z",
  "name": "string",
  "openData": false,
  "projection": "string"
}

GET /opendata/layers/{id}

Obtiene la capa indicada.

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json NO REQUIERE 200 (Layer) id: identificador del recurso

Ejemplo de respuesta:

{
  "data": "string: datos de la capa en formato GEOJSON",
  "description": "string",
  "format": "GEOJSON",
  "id": "5a3d276e99b0c811e95c4340",
  "lastUpdate": "2017-12-26T08:07:52.308Z",
  "name": "string",
  "openData": true,
  "projection": "string"
}

GET /layers/{id}/data

Obtiene solo los datos (data) de la capa.

Cabeceras Autorización Respuesta Parámetos
Content-Type: text/plain Authorization: Bearer token STORE_ADMIN DATA_MANAGER
o usuario con acceso otorgado de lectura 200 (raw String) id: identificador del recurso

Ejemplo de respuesta:

Se obtiene una cadena de texto. Dependiendo del formato almacenado podrá ser:

GEOJSON | GEOJSON_CSS | WKT | GML | KML | TOPO_JSON | CUSTOM_TEXT

GET /opendata/layers/{id}/data

Obtiene solo los datos (data) de la capa.

Cabeceras Autorización Respuesta Parámetos
Content-Type: text/plain NO REQUIERE 200 (raw String) id: identificador del recurso

Ejemplo de respuesta:

Se obtiene una cadena de texto. Dependiendo del formato almacenado podrá ser:

GEOJSON | GEOJSON_CSS | WKT | GML | KML | TOPO_JSON | CUSTOM_TEXT

POST /layers

Crea un nuevo recurso de tipo capa (Layer

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN, DATA_MANAGER o un Usuario con permiso de escritura sobre el recurso 201 (Layer)

Ejemplo de body y respuesta:

{
  "data": "string: datos de la capa en formato GEOJSON",
  "description": "descripción de la capa",
  "format": "GEOJSON",
  "id": "5a3d276e99b0c811e95c4340",
  "lastUpdate": "2017-12-26T08:07:52.308Z",
  "name": "Nombre-capa",
  "openData": false,
  "projection": "WGS84"
}

Siempre se creará un recurso nuevo. Si la petición la realiza un Usuario (con rol USER) el id de la capa debe indicar el identificador de un recurso existente sobre el que tenga permiso de escritura. De ser así se creará un nuevo recurso, nunca eliminará o modificará el existente.


PUT /layers

Modifica un recurso de tipo capa (Layer)

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN, DATA_MANAGER 200 (Layer)

Ejemplo de body y respuesta:

{
  "data": "string: datos de la capa en formato GEOJSON",
  "description": "descripción de la capa",
  "format": "GEOJSON",
  "id": "5a3d276e99b0c811e95c4340",
  "lastUpdate": "2017-12-26T08:07:52.308Z",
  "name": "Nombre-capa",
  "openData": false,
  "projection": "WGS84"
}

DELETE /layers/{id}

Modifica un recurso de tipo capa (Layer)

Cabeceras Autorización Respuesta Parámetos
Content-Type: application/json Authorization: Bearer token STORE_ADMIN o DATA_MANAGER 204 id: identificador del recurso a eliminar