Skip to content

5.6. Parametrización API REST plugins externos

isdefeG edited this page Jul 1, 2026 · 1 revision

Plugins Externos por API REST

Descripción General

El sistema API-IDEE permite cargar plugins externos de forma dinámica a través de la API REST. Estos plugins no están incluidos en el servidor local, sino que se cargan desde un repositorio remoto (Community Plugins).

Los plugins externos se gestionan de forma transparente para el usuario, de manera que pueden utilizarse de la misma forma que los plugins internos a través de los parámetros de la URL.

Configuración

URL Base de Plugins Externos

La URL base donde se alojan los plugins externos se configura en el archivo de propiedades:

# Archivo: api-idee-rest/src/main/resources/properties/configuration.properties
plugins.external.base.url=${plugins.external.base.url}

El valor real se define en los archivos de filtros de Maven según el entorno:

# Archivo: api-idee-parent/src/main/filters/local.properties
# Archivo: api-idee-parent/src/main/filters/cnig-desarrollo.properties
plugins.external.base.url=https://componentes.idee.es/api-idee-communityplugins

Arquitectura del Sistema

Flujo de Carga de Plugins Externos

  1. Inicialización: Al arrancar la API REST, se carga la lista de plugins externos disponibles desde {BASE_URL_COMMUNITY_PLUGINS}/data/plugins.json
  2. Validación: Solo se cargan plugins que no estén marcados como obsoletos
  3. Carga bajo demanda: Cuando se solicita un plugin externo, se descarga su api.json desde {BASE_URL_COMMUNITY_PLUGINS}/plugins/{nombre_plugin}/dist/api.json
  4. Caché: Los plugins externos cargados se almacenan en caché para peticiones posteriores

Uso desde la API REST

Añadir un plugin externo por API-REST

Los plugins externos se utilizan exactamente igual que los plugins internos:

Opción 1 - Como parámetro individual:

https://componentes.idee.es/api-idee/?miPluginExterno=TR*true*false

Opción 2 - Usando el parámetro plugins:

https://componentes.idee.es/api-idee/?plugins=miPluginExterno,otroPlugin

Opción 3 - Combinando ambas formas:

https://componentes.idee.es/api-idee/?miPluginExterno=TR*true&plugins=otroPlugin

Endpoints Disponibles

1. Listar Plugins Externos Disponibles

GET /api/actions/plugins/external

Respuesta:

["plugin1", "plugin2", "plugin3"]

2. Recargar Lista de Plugins Externos

Fuerza una recarga de la lista de plugins externos desde el repositorio remoto:

GET /api/actions/plugins/external/reload

Respuesta:

{
  "success": true,
  "message": "Lista de plugins externos recargada correctamente",
  "count": 15
}

Este endpoint es útil cuando:

  • Se han añadido nuevos plugins al repositorio remoto
  • Se ha modificado el estado de obsolescencia de algún plugin
  • Se necesita limpiar la caché de plugins externos

Ejemplos de uso

  1. Listar Plugins Externos Disponibles: https://componentes.idee.es/api-idee/api/actions/plugins/external

  2. Añadir plugin interno (layerswitcher) y plugin externo (archetype) por API-REST: https://componentes.idee.es/api-idee/?layerswitcher&archetype

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

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
     + WMC
     + WMTS
     + TMS
     + XYZ
     + OSM
     + MBTiles
     + GenericRaster
     + GeoTIFF
     + GeoPackageTile
   • 2.1.1.3. Capas 3D
     + Terreno
     + 3DTiles
       + info 3DTiles
   • 2.1.1.4. Capas rápidas
   • 2.1.1.5. Grupo de capas
   • 2.1.1.6. Secciones
   • 2.1.1.7. GeoPackage
   • 2.1.1.8. Capas externas

 ■ 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
 5.6. Parametrización API-REST plugins externos

6. PARAMETRIZACIÓN VISUALIZADORES

7. SOLUCIÓN DE PROBLEMAS

8. PROCESO DE VERSIONADO

9. GUÍA DE DESARROLLO
  > Guía para colaborar en el repositorio
  > Guía para el desarrollo de API-IDEE
  > Guía de test de API-IDEE
  » Tutorial desarrollo del núcleo de API-IDEE - (Cliente)
  > Guía de desarrollo de componentes
  » Tutorial desarrollo del núcleo de API-IDEE - (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-IDEE

Clone this wiki locally