-
Notifications
You must be signed in to change notification settings - Fork 7
Guía de desarrollo componentes
Para desarrollar componentes en la API-IDEE:
- 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-idee-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-idee-module</artifactId>
<packaging>pom</packaging>
<name>API IGN MODULE</name>
<!-- SECCION DEL PARENT -->
<parent>
<groupId>es.ign.api</groupId>
<artifactId>api-idee-parent</artifactId>
<version>4.4.0</version>
<relativePath>../api-idee-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-idee</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-idee-parent, añadiendo a la etiqueta modules un nuevo componente, por ejemplo "api-idee-module" que quedaría de la siguiente forma:
<modules>
<module>../api-idee-js</module>
<module>../api-idee-proxy</module>
<module>../api-idee-database</module>
<module>../api-idee-rest</module>
<module>../api-idee-module</module>
</modules>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.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.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
5.6. Parametrización API-REST plugins externos
6. PARAMETRIZACIÓN VISUALIZADORES
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