Skip to content

Tutorial desarrollo de nuevos plugins

Jesús Guillen Encinas edited this page Feb 26, 2026 · 2 revisions

! Página en desarrollo

En esta página vamos a ver paso a paso cómo crear un nuevo plugin, partiendo de tener en nuestro repositorio personal un fork de API-IDEE.

1./ Nos dirigimos a la carpeta plugins:

    cd API-IDEE/api-idee-js/src/plugins/

2./ Hacemos la instalación del paquete npm que nos ayudará a crear el plugin

    npm i api-cnig-create-plugin

3./ Lanzamos el comando para crear la estructura del plugin

    npx api-cnig-create-plugin

Este comando nos pedirá el nombre del plugin y si queremos instalar las dependencias npm útiles para el desarrollo de plugins. Para el ejemplo, usaremos el nombre «prueba» para el plugin.

3.1 Como alternativa a la herramienta de creación de plugin, existe una plantilla en la carpeta plugins (basic)

Si queremos usar la plantilla copiamos la carpeta basic y la pegamos en la misma carpeta de plugins. Tendremos que modificar el nombre a la carpeta y a todos los ficheros cambiando "basic" por el nombre de plugin que queramos. También, en los ficheros tendremos que cambiar las referencias a "basic" por el nuevo nombre del plugin.

4./ Nos vamos a la carpeta del plugin:

    cd ./prueba

5./ Ejecutamos el comando de instalación y levantado del servidor

    npm i
    npm start

En el caso de dar el error: SyntaxError: Unexpected token '??='. Hay que subir la versión de nodeJS a la v16.20.2

En el caso de dar algún error de Eslint o webpack, vamos a realizar los siguientes pasos:

5.1 Copiamos desde, por ejemplo, el plugin modal, el archivo package.json y lo pegamos en nuestra carpeta del plugin «prueba», modificando el nombre, versión y descripción

5.2 Copiamos desde, por ejemplo, el plugin modal, la carpeta webpack-config y lo pegamos en nuestra carpeta del plugin «prueba/webpack-config».

5.3 Ejecutamos:

    npm run fix

5.4 En el caso de dar el error: Unexpected use of file extension "json" for "../../api.json". En el archivo api-idee-js/src/plugins/prueba/src/facade/js/modal.js hay que modificar la línea "import api from '../../api.json';" por "import api from '../../api';"

5.5 Volvemos al punto 5.

6./ En este punto, podemos comenzar a desarrollar nuestro nuevo plugin a partir de los archivos que hay en ./src

7./ Una vez terminado el desarrollo, podemos comprobar que el plugin no tiene errores:

    npm run check

8./ Para arreglar la mayoría de errores que se comenten durante el desarrollo, se puede ejecutar el siguiente comando:

    npm run fix

Este comando está relacionado con eslint. Si se tiene instalada la extensión en vscode (https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint), se pueden ir comprobando los errores según se va programando.

9./ El siguiente paso es compilar el plugin:

    npm run build

10./ Y por último, para comprobar que la compilación ha ido bien, se puede volver a levantar el servidor y esta vez acceder a http://IP:Puerto/test/prod.html

    npm start 

11./ Una vez comprobado que nuestro plugin se ha compilado bien, se puede proceder a realizar el Pull Request al repositorio de API-IDEE

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