-
Notifications
You must be signed in to change notification settings - Fork 15
Guía de desarrollo componentes
Para desarrollar componentes en la API-CNIG:
- Crear una carpeta con el componente, esta carpeta se recomienda que esté en la raíz del proyecto.
Este directorio tiene que contener un archivo pom.xml, que debe contener las dependencias necesarias para usar el componente y la sección del "parent", igual que tienen el resto de componentes. Con esta sección, nuestro componente puede heredar algunas propiedades del POM principal (artefacto padre).
Por ejemplo, si se creara un nuevo componente llamado "api-ign-module", el archivo pom.xml quedaría de la siguiente forma:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>api-ign-module</artifactId>
<packaging>pom</packaging>
<name>API IGN MODULE</name>
<!-- SECCION DEL PARENT -->
<parent>
<groupId>es.ign.api</groupId>
<artifactId>api-ign-parent</artifactId>
<version>4.4.0</version>
<relativePath>../api-ign-parent/pom.xml</relativePath>
</parent>
<!---->
</project>
Dependiendo del componente se tendrá que definir que dependencias y que proceso de "build" se necesita seguir. Por ejemplo, si se quiere cargar un componente de JavaScript quedaría de la siguiente forma:
<build>
<finalName>api-core</finalName>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>1.6</version>
<configuration>
<workingDirectory></workingDirectory>
</configuration>
<executions>
<!-- INSTALL NODE AND NPM -->
<execution>
<id>install node and npm</id>
<goals>
<goal>install-node-and-npm</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<nodeVersion>v12.18.4</nodeVersion>
<npmVersion>6.14.8</npmVersion>
<!--<nodeDownloadRoot>http://nodejs.org/dist/</nodeDownloadRoot>
<npmDownloadRoot>http://nodejs.org/dist/</npmDownloadRoot> -->
</configuration>
</execution>
<!-- RUNNING NPM -->
<execution>
<id>run npm install</id>
<goals>
<goal>npm</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<arguments>install</arguments>
</configuration>
</execution>
<!-- RUNNING NPM BUILD -->
<execution>
<id>run npm build</id>
<goals>
<goal>npm</goal>
</goals>
<phase>generate-resources</phase>
<configuration>
<arguments>run build</arguments>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<executions>
<execution>
<id>packed build javascript</id>
<goals>
<goal>single</goal>
</goals>
<phase>package</phase>
<configuration>
<descriptors>
<descriptor>assembly/dist-resources.xml</descriptor>
<descriptor>assembly/doc-resources.xml</descriptor>
<descriptor>assembly/templates-resources.xml</descriptor>
</descriptors>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
Todo esto se realiza dentro de la etiqueta <build>
, se usan los plugins necesarios para definir que versión de Node.js y de NPM se va a utilizar, genera el "build" con los archivos minificados, ...
- Se tiene que configurar el archivo pom.xml que se encuentra dentro de la carpeta api-ign-parent, añadiendo a la etiqueta modules un nuevo componente, por ejemplo "api-ign-module" que quedaría de la siguiente forma:
<modules>
<module>../api-ign-js</module>
<module>../api-ign-proxy</module>
<module>../api-ign-database</module>
<module>../api-ign-rest</module>
<module>../api-ign-module</module>
</modules>
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.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.4. Paneles
» Creación de panel desde cero sin controles
» Tutorial Panel de un único control
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
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