Skip to content

1.1. Componentes de la API CNIG

yaizavalidador edited this page Jun 27, 2023 · 38 revisions

La arquitectura de API CNIG está compuesta por los siguientes componentes:

api-ign-js

El componente api-ign-js es una librería JavaScript que provee una API para facilitar la creación de visores de mapas. Para la construcción de este módulo se ha utilizado OpenLayers para el desarrollo de la implementación.

Openlayers es una librería de JavaScript que se utiliza para crear mapas interactivos en aplicaciones web. Es una herramienta poderosa para mostrar datos geográficos en aplicaciones web, ya sea para visualizar ubicaciones, rutas o cualquier otra información relacionada con mapas. Es gratuita y de código abierto.

Estructura del componente

/
├── config 📋                # Configuración del JSDOC.
├── src 📁                   # Código fuente.
    ├── facade           # Fachada.
    ├── impl             # Implementación.
    ├── plugins          # Plugins.
    ├── templates        # Plantillas handlebars para los controles y la librería.
    ├── configuration.js # Configuraciones predeterminadas de la librería.
├── task 🌈                  # Crea el punto de entrada, index.js
├── test 📦                  # Código test.
├── versions 💾              # Control de versiones.
├── webpack-config 🏗️        # Configuración de Webpack.
└── ...
  • facade: Contiene una fachada común a todas las implementaciones. Básicamente podemos encontrar código CSS, fuentes, iconos, JS y HTML.

  • impl: Contiene las implementaciones. Actualmente, en el caso de este componente se está utilizando únicamente OpenLayers (ol), pero se podría ampliar a otras librerías base.

  • plugins: Los plugins o componentes son funcionalidades que ofrecen utilidades específicas que, a diferencia de los controles básicos, suelen usarse en escenarios concretos, por lo que se separan del core o núcleo principal de la API para no penalizar con su descarga a quien no los necesite. Algunos ejemplos son el plugin de búsquedas del IGN o el plugin de atribuciones.

  • templates: En esta carpeta se encuentran las diferentes plantillas necesarias para el funcionamiento del CORE (controles, popup,...) Utiliza la librería Handlebars, una biblioteca de plantillas de JavaScript que permite generar HTML dinámico de manera eficiente y sencilla.
    Con Handlebars, los desarrolladores pueden crear plantillas HTML con marcadores de posición, llamados "tags", que luego se pueden llenar con datos dinámicos en tiempo de ejecución. Estos "tags" son reconocibles por las llaves dobles {{}} y pueden contener variables, expresiones y constructores de control, lo que brinda gran flexibilidad.

  • configuration.js: En este archivo encontrarás las configuraciones básicas por defecto de la librería, con el método M.config podrás modificar estas configuraciones.

api-ign-parent

El componente api-ign-parent actúa como un "módulo padre", lo que significa que tiene la responsabilidad de coordinar y controlar el proceso de compilación y generación del archivo WAR final api-core.

Maven es una herramienta de gestión de proyectos ampliamente utilizada en el desarrollo de software. Proporciona una estructura y un conjunto de convenciones para organizar y construir proyectos de manera eficiente.

En el componente podemos encontrar el archivo pom.xml (Project Object Model). Es un archivo XML, en Maven, que se utiliza para definir, configurar y gestionar proyectos de software en el entorno de desarrollo. POM es el núcleo de Maven y contiene información esencial sobre el proyecto, como su estructura, dependencias, configuración de compilación, empaquetado y distribución.

En la carpeta filters se encuentran todos los archivos .properties. Los archivos de propiedades (.properties) se utilizan para definir valores configurables y parámetros en un proyecto. Estos archivos contienen pares de clave-valor, donde cada clave representa una propiedad y su valor corresponde al valor asignado a esa propiedad.

api-ign-proxy

Un proxy es un intermediario entre un dispositivo y una red. Actúa como un servidor que solicita y recibe información en nombre del dispositivo. Cuando un usuario envía una solicitud a través de un proxy, este la reenvía al destino final y luego devuelve la respuesta al dispositivo.

El componente api-ign-proxy contiene el proxy para realizar peticiones GET/POST por si el CORS no está habilitado.

Más información sobre el proxy de la API-CNIG en el siguiente enlace.

api-ign-rest

El componente api-ign-rest proporciona el servicio Web con API RESTful que genera el código JS necesario para generar un visor con la configuración especificada por parámetros.

Cuando se realiza el proceso de compilación dentro de la carpeta target se encuentra el .war generado para desplegar la API.

Más información sobre la API-REST en el siguiente enlace.

api-ign-database

La API-CNIG proporciona un módulo de conexión a la base de datos (PostgreSQL). Realizando diferentes peticiones GET se puede obtener diferentes servicios (bases de datos disponibles, tablas disponibles, campos de una tabla, realizar consultas personalizadas, ...). Más información sobre cómo realizar las peticiones en el siguiente enlace.

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
   • 2.1.1.2. Capas ráster
     + WMS
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
   • 2.1.1.3. Capas rápidas

 ■ 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

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 de desarrollo de plugins
  > Guía de desarrollo de visualizadores con React
  > Guía de desarrollo de componentes
  > Guía para el desarrollo de API-CNIG
  > Compilación proyecto API-CNIG

Clone this wiki locally