---
title: "¿Cómo crear un microservicio que comunique con la Plataforma?"
canonical: "https://onesaitplatform-es.refined.site/space/DOC/2215933149/%C2%BFC%C3%B3mo%20crear%20un%20microservicio%20que%20comunique%20con%20la%20Plataforma%3F"
format: markdown
---
> Macro (toc)

# Introducción

Podemos comunicarnos con la Plataforma a través de un microservicio, para ello se ha dejado disponible una plantilla con un pequeño ejemplo de código.

# Paso 1: descargar el código fuente de la plataforma

Para poder descargar la plantilla debes descargar el código fuente de la plataforma:

```shell
git clone https://github.com/onesaitplatform/onesait-cloud-platform-examples.git
```

# Paso 2: copiar la plantilla del microservicio y editarla

Una vez descargado el código fuente de la plataforma, ve hasta el directorio **/onesait-cloud-platform/sources/examples **y seleccionamos el directorio **microservice-template:**

![image](media://15e83fb9-c7be-4e25-b9a5-7b178d20fc56)

Si analizas este directorio, encontrarás el archivo **pom.xml** que <span style="color: #091e42">es un fichero que necesita Maven y que contiene información del proyecto así como la configuración del mismo, dependencias de librerías, plugins de empaquetado, etc... </span>

<span style="color: #091e42">Por un lado tenemos las dependencias de Spring y por otro tenemos la librería </span><span style="color: #091e42">**onesaitplatform-iotclient4springboot**</span><span style="color: #091e42"> que permite comunicar con plataforma. Para más información, lee </span><span style="color: #091e42">[este post](https://onesaitplatform.atlassian.net/wiki/pages/createpage.action?spaceKey=OP&title=%28Client%20APIs%29%20%28ES%29%20%C2%BFQu%C3%A9%20es%20y%20c%C3%B3mo%20usar%20la%20librer%C3%ADa%20cliente%20de%20Spring%2C%20aka%20Client4SpringBoot%3F)</span>

<span style="color: #091e42">Es recomendable utilizar la última versión disponible en el repositorio.</span>

```xml
<dependency>
	<groupId>com.minsait.onesait.platform</groupId>
	<artifactId>onesaitplatform-iotclient4springboot</artifactId>
	<version>1.3.6</version>
</dependency>
```

<span style="color: #091e42">Esta dependencia se encuentra en el repositorio público de onesaitplatform.</span>

```xml
<repositories>
	<repository>
		<id>onesait</id>
		<url>https://nexus.onesaitplatform.com/nexus/content/repositories/releases/</url>
	</repository>
</repositories>
```

  
<span style="color: #091e42">Es en esta sección donde tendrán que ser añadidas todas las dependencias que necesite tu microservicio.</span>

# <span style="color: #091e42">Paso 3: compilar el código fuente del microservicio</span>

<span style="color: #091e42">Desde el directorio en el que hayamos copiado la plantilla, lanza el comando:</span>

```shell
mvn clean install
```

  
<span style="color: #091e42">Este comando se encargará de descargar las dependencias y compilar los fuentes, así como generar los .class y empaquetados del microservicio.</span>

<span style="color: #091e42">Una vez ejecutado el comando, deberías ver algo como esto:</span>

![image](media://d99d6bd1-4055-46e5-a4a5-b6a7db901b01)

# <span style="color: #091e42">Paso 4: Ejecutar el microservicio (con y sin Eclipse)</span>

<span style="color: #091e42">Este microservicio está escrito en lenguaje Java y usa el stack de Spring como framework de desarrollo, en concreto </span><span style="color: #091e42">***SpringBoot***</span><span style="color: #091e42">. Para ello se ha dejado definida la clase principal de la aplicación con las anotaciones necesarias, las principales:</span>

<span style="color: #091e42">**@EnableAutoConfiguration**</span>  
<span style="color: #091e42">**@ComponentScan**</span>

![image](media://6465dd01-c189-47e9-9b4f-1db3f89938b1)

<span style="color: #091e42">Dentro del Eclipse, si clicas con el botón derecho sobre la clase </span><span style="color: #091e42">**MicroserviceTemplateApplication.java**</span><span style="color: #091e42"> y seleccionas </span><span style="color: #091e42">**Run As > Java Application**</span>

![image](media://6cc42f1c-93ed-4b60-866a-f2fe9d52021c)

<span style="color: #091e42">Si todo va correctamente, verás algo como:</span>

![image](media://0ed3da5c-a35a-4da6-b203-0a6495a33856)

<span style="color: #091e42">También puedes arrancar tu microservicio fuera del Eclipse. </span>

<span style="color: #091e42">Lo primero es haber ejecutado el paso 3 para que se genera el </span><span style="color: #091e42">**.jar**</span><span style="color: #091e42"> correspondiente. Si vas al directorio </span><span style="color: #091e42">**\microservice-template\target, **</span><span style="color: #091e42">encontrarás dos ficheros .jar.</span>

![image](media://9d74274d-42c2-4fd6-acbb-7c666dec04c2)

<span style="color: #091e42">Uno de ellos, el acabado en</span><span style="color: #091e42">**-exec.jar, **</span><span style="color: #091e42">es un fichero que incluye todas las dependencias, así como un Tomcat embebido en el cual se ejecutará tu módulo con el comando:</span>

```shell
java -jar microservice-example-0.0.1-SNAPSHOT-exec.jar
```

![image](media://46ace35a-256a-483e-bc4a-b831a60a815d)

# <span style="color: #091e42">Paso 5: Generar imagen Docker del microservicio y ejecutar el contenedor</span>

<span style="color: #091e42">El fichero </span><span style="color: #091e42">**application-docker.yml **</span><span style="color: #091e42">contiene propiedades específicas, y que sobreescriben las del fichero </span><span style="color: #091e42">**application.yml**</span><span style="color: #091e42">, para la ejecución del módulo dentro de un contenedor Docker:</span>

![image](media://2044e326-b102-4d97-8815-7ca464d9045d)

<span style="color: #091e42">Por otro lado, también tienes el fichero</span><span style="color: #091e42">** Dockerfile**</span><span style="color: #091e42"> que contiene las instrucciones necesarias para generar la imagen Docker del microservicio. Para ello es necesario tener el </span><span style="color: #091e42">[Docker engine](https://docs.docker.com/docker-for-windows/install/)</span><span style="color: #091e42"> previamente instalado. Para generar la imagen sólo es necesario copiar el jar </span><span style="color: #091e42">**microservice-example-1.1.0-SNAPSHOT-exec.jar**</span><span style="color: #091e42"> ubicado en el directorio </span><span style="color: #091e42">**/target**</span><span style="color: #091e42"> del módulo al directorio </span><span style="color: #091e42">**/docker**</span><span style="color: #091e42">:</span>

![image](media://37c4983a-8313-4a2b-a446-9433f8613ffe)

<span style="color: #091e42">Y desde este directorio ejecutar la sentencia:</span>

```shell
docker build -t onesaitplatform/microservice:latest
```

![image](media://cef45029-75b6-4b97-be40-0533e80d3731)

  
<span style="color: #091e42">Con esto ya tienes la imagen generada en local. Para poder arrancar el contenedor, ejecuta el comando:</span>

```shell
docker run -t -p 10000:10000 onesaitplatform/microservice:latest
```

<span style="color: #091e42">Puedes acceder a tu módulo mediante un navegador web escuchando en el puerto 10000: </span><span style="color: #091e42">[http://localhost:10000/](http://localhost:19500/)</span>