Skip to content

5.2. Base de datos API REST

IngenieroGeomatico edited this page Sep 8, 2023 · 7 revisions

Conexiones y seguridad

Parámetros de configuración del módulo api-ign-database: Conexión

Obtención de las bases de datos disponibles

Servicio que obtiene las conexiones de bases de datos configuradas en un fichero properties del módulo.

  • Tipo de petición, GET.
  • URL: http://{dominio}/api-core/api/database

Obtención de tablas disponibles

Servicio que obtiene los nombres de las tablas que contienen información geográfica de una base de datos específica.

  • Tipo de petición, GET.
  • URL: http://{dominio}/api-core/api/database/{baseDatos}/collections
  • Parámetros disponibles:
    • limit: Cantidad de resultados devueltos (valor por defecto 5).
    • offset: Offset de la consulta (valor por defecto 0).
    • token: Indica si la base de datos se corresponde con un token con los datos de conexión (true) o si es el nombre de una configurada (false). Por defecto, false. No se recomienda el uso de token en entornos de producción.

Obtención de los campos de una tabla

Servicio que obtiene los nombres y tipo de dato de una tabla y base de datos específicas.

  • Tipo de petición, GET.
  • URL: http://{dominio}/api-core/api/database/{nombreBD}/attributes/{nombreTabla}
  • Parámetros disponibles:
    • schema: Nombre del esquema al que pertenece la tabla.
    • limit: Cantidad de resultados devueltos (valor por defecto 5).
    • offset: Offset de la consulta (valor por defecto 0).
    • token: Indica si la base de datos se corresponde con un token con los datos de conexión (true) o si es el nombre de una configurada (false). Por defecto, false. No se recomienda el uso de token en entornos de producción.

Obtención de los datos filtrados de una tabla

Servicio que obtiene los datos filtrados, si hubiera filtros, de una tabla y base de datos específicas.

  • Tipo de petición, GET.
  • URL: http://{dominio}/api-core/api/database/{nombreBD}/collections/{nombreTabla}/items?
  • Parámetros disponibles:
    • schema: Nombre del esquema al que pertenece la tabla.
    • limit: Cantidad de resultados devueltos (valor por defecto 5).
    • offset: Offset de la consulta (valor por defecto 0).
    • token: Indica si la base de datos se corresponde con un token con los datos de conexión (true) o si es el nombre de una configurada (false). Por defecto, false. No se recomienda el uso de token en entornos de producción.
    • formato: Formato en el que se quieren recibir los datos. Los formatos disponibles son wkt, kml, gml (solo para versión de postgresql >= 10.0), geojson, mvt (devuelve un pbf) (solo para versión de postgis >= 3.0.0). El valor por defecto es wkt.
    • consumible: Indica si los resultados se van a consumir directamente o no. true si los datos de paginación no aparecen y se devuelve directamente el listado de elementos o en el formato indicado, false si los datos de paginación aparecen junto con la lista de elementos con el formato correspondiente. Por defecto, false. El formato mvt es siempre consumible aunque el parámetro sea false.
    • bbox: Filtro geométrico de la extensión en la que deben contenidos los features con el formato minx, miny, minz (opcional), maxx, maxy, maxz (opcional).
    • bbox-crs: SRID del bbox (valor por defecto 4326).
    • aliasgeom: Alias para la columna de la geometría (valor por defecto geometry).

Para el uso de filtros hay que pasarlos cómo parámetros con el formato: nombreColumna=valor, pero cuando es búsqueda general sería: busquedaGeneral=nombreColumna;...@valor. Ejemplo de uso: http://{dominio}/api-core/api/database/{nombreBD}/collections/{nombreTabla}/items?Atributo=valor&busquedaGeneral=Atributo1,Atributo2,...@Valor1,Valor2,...

Obtención de los datos de una tabla (SQL – Consulta personalizada)

Servicio que realiza una consulta personalizada de una tabla y base de datos específicas.

  • Tipo de petición, GET.
  • URL: http://{dominio}/api-core/api/database/{nombreBD}/{nombreTabla}/sql?
  • Parámetros disponibles:
    • schema: Nombre del esquema al que pertenece la tabla (valor por defecto public).
    • select: Cláusula SELECT de la consulta (sin incluir la palabra clave select, se añade posteriormente al montar la consulta). Valor por defecto *ej: select=id,nombre,localidad,trabajadores
    • where: Cláusula WHERE de la consulta (sin incluir la palabra clave where, se añade posteriormente al montar la consulta). En caso de filtrar con un like/ilike los % se deben poner como * ya que el carácter % en una url esta reservado para el encode. ej: where=nombre like 'al'
    • groupby: Cláusula GROUP BY de la consulta (sin incluir la palabra clave group by, se añade posteriormente al montar la consulta). ej: groupby=localidad
    • having: Cláusula HAVING de la consulta (sin incluir la palabra clave having, se añade posteriormente al montar la consulta). No se tiene en cuenta si no hay group by. ej: having=sum(trabajadores) > 100
    • orderby: Cláusula ORDER BY de la consulta (sin incluir la palabra clave order by, se añade posteriormente al montar la consulta). ej: orderby=localidad desc
    • limit: Cláusula LIMIT de la consulta (sin incluir la palabra clave limit, se añade posteriormente al montar la consulta). ej: limit=100
    • offset: Cláusula OFFSET de la consulta (sin incluir la palabra clave offset, se añade posteriormente al montar la consulta). ej: offset=100
    • token: Indica si la base de datos se corresponde con un token con los datos de conexión (true) o si es el nombre de una configurada (false). Por defecto, false. No se recomienda el uso de token en entornos de producción.

Obtención de datos de una base de datos (SQL – Consulta nativa)

Servicio que realiza una consulta nativa directamente en la base de datos especificada.

  • Tipo de petición, GET.
  • URL: http://{dominio}/api-core/api/database/{nombreBD}
  • Parámetros disponibles:
    • query: Cadena con la consulta sql nativa que se quiere realizar. (Parámetro obligatorio)
    • token: Indica si la base de datos se corresponde con un token con los datos de conexión (true) o si es el nombre de una configurada (false). Por defecto, false. No se recomienda el uso de token en entornos de producción.

Obtención de datos sobre una capa

Servicio que realiza un filtrado sobre una capa en formato geojson.

  • Tipo de petición, GET.
  • URL: http://{dominio}/api-core/api/database/{nombreBD}/layerfilter
  • Parámetros disponibles:
    • layer: Geojson representativo de la capa para el filtrado. El geojson debe estar escapado para que el servicio reconozca los caracteres especiales.
    • select: Cláusula SELECT de la consulta (sin incluir la palabra clave select, se añade posteriormente al montar la consulta). Valor por defecto * ej: select=id,nombre,localidad,geometry
    • where: Cláusula WHERE de la consulta (sin incluir la palabra clave where, se añade posteriormente al montar la consulta). En caso de filtrar con un like/ilike los % se deben poner como * ya que el carácter % en una url esta reservado para el encode. ej: where=nombre like 'al'
    • groupby: Cláusula GROUP BY de la consulta (sin incluir la palabra clave group by, se añade posteriormente al montar la consulta). ej: groupby=localidad
    • having: Cláusula HAVING de la consulta (sin incluir la palabra clave having, se añade posteriormente al montar la consulta). No se tiene en cuenta si no hay group by. ej: having=sum(trabajadores) > 100
    • orderby: Cláusula ORDER BY de la consulta (sin incluir la palabra clave order by, se añade posteriormente al montar la consulta). ej: orderby=localidad desc
    • limit: Cláusula LIMIT de la consulta (sin incluir la palabra clave limit, se añade posteriormente al montar la consulta). ej: limit=100
    • offset: Cláusula OFFSET de la consulta (sin incluir la palabra clave offset, se añade posteriormente al montar la consulta). ej: offset=100
    • formato: Formato en el que se quieren recibir los datos. Los formatos disponibles son wkt, kml, gml (solo para versión de postgresql >= 10.0), geojson, mvt (devuelve un pbf) (solo para versión de postgis >= 3.0.0). El valor por defecto es geojson.
    • token: Indica si la base de datos se corresponde con un token con los datos de conexión (true) o si es el nombre de una configurada (false). Por defecto, false. No se recomienda el uso de token en entornos de producción.

Obtención de valores de dominio

  • Tipo de petición, GET.

  • URL: http://{dominio}/api-core/api/{database}/{tabla}/domain/{columna}

  • Parámetros disponibles:

    • schema: Nombre del esquema al que pertenece la tabla.
    • token: Indica si la base de datos se corresponde con un token con los datos de conexión (true) o si es el nombre de una configurada (false). Por defecto, false. No se recomienda el uso de token en entornos de producción.

Conformance

Servicio que obtiene enlaces a las especificaciones de ogc api features que cumplen los servicios de la api.

  • Tipo de petición, GET.
  • URL: http://{dominio}/api-core/api/database/conformance

1.INICIO
   1.1. Componentes de la API-CNIG
   1.2. Documentación y Puntos de acceso
   1.3. Primeros pasos
   1.4. Diagrama API CNIG

2. MAPA
2.1. Capas

 ■ 2.1.1. Fuentes
   • 2.1.1.1. Capas vectoriales
     + Vector
     + WFS
     + GeoJSON
     + KML
     + MVT
     + OGCAPIFeatures
     + MBTilesVector
     + GenericVector
     + MapLibre
   • 2.1.1.2. Capas ráster
     + WMS
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
     + GeoTIFF
   • 2.1.1.3. Capas rápidas
   • 2.1.1.4. Grupo de capas

 ■ 2.1.2. Simbolización
   • 2.1.2.1. Genérica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.2. Básica
     + Puntos
     + Líneas
     + Polígonos
   • 2.1.2.3. Avanzada
     + Coropletas
     + Proporcional
     + Categorías
     + Estadísticos
     + Mapas de Calor
     + Cluster
     + Línea de flujo
     + Composición

 ■ 2.1.3. Filtros

2.3.-Plugins

  > Creación de plugin en cliente

  » Tutorial de creación de un plugin

2.4. Paneles

  » Creación de panel desde cero sin controles

  » Tutorial Panel de un único control

  » Tutorial Panel de un único control con más de un botón

  » Tutorial Panel con más de un control

2.5. Eventos

  » Gestión de eventos
  » Gestión de eventos en controles personalizados

    2.6. Internacionalización

    2.7. Configuración

    2.8. Acceso librerías base

3. UTILIDADES

4. PROXY

5. API REST
 5.1. Parametrización API-REST
 5.2. Base de Datos API-REST
 5.3. API REST Actions
 5.4. Servicio de correos electrónicos
 5.5. Capas rápidas

6. PARAMETRIZACIÓN VISUALIZADORES

7. SOLUCIÓN DE PROBLEMAS

8. PROCESO DE VERSIONADO

9. GUÍA DE DESARROLLO
  > Guía para el desarrollo de API-CNIG
  » Tutorial desarrollo del núcleo de API-CNIG - (Cliente)
  > Guía de desarrollo de componentes
  » Tutorial desarrollo del núcleo de API-CNIG - (Servidor)
  > Guía de desarrollo de plugins
  » Tutorial desarrollo de plugins ya creados
  » Tutorial desarrollo de nuevos plugins
  > Guía de desarrollo de visualizadores con React

  > Compilación proyecto API-CNIG

Clone this wiki locally