En este post vamos a tratar de explicar cómo generar un servicio oData desde SAP Cloud Platform con la ayuda de las herramientas de Back-end de los servicios móviles.
Esto nos puede servir para desvincular a los desarrolladores de Front-end respecto a los de Back-end que muchas veces trabajamos a la vez (o somos la misma persona) y podernos crear un servicio oData de prueba para nuestras aplicaciones mientras se trabaja en Back-end.
Vamos a crear nuestro servicio oData desde el SAP Web IDE (que ya debería de sonarnos) y para ello tenemos que habilitar el siguiente plugin:

La herramienta para generar el servicio se basa en CSDL (idioma de descripción de servicios oData). Estos servicios pueden ser extendidos el número de veces necesarias, se le puede añadir lógica de negocio, ya que genera un servidor JAVA, soporta base de datos HANA, Postgres, ASE, etc.

Vamos a empezar a generar nuestro servicio oData, para ello vamos a SAP Web IDE y generamos un nuevo proyecto desde template y utilizamos la plantilla para el servicio oData:

Ahora debemos proporcionar más información sobre el servicio. ¿Desea generar un servicio para Cloud Foundry o para NEO? ¿Desea generarlo para SAP HANA, SAP ASE o Postgres? Para nuestro ejemplo vamos a utilizar InMemory sin autenticación en CF como a continuación:

Por ahora tenemos el proyecto creado pero vacío, por lo que el siguiente paso será hacer clic con el botón derecho en la carpeta del proyecto y crear Nuevo > Documento CSDL de OData y completar el formulario de la siguiente manera:

Una vez creado el fichero CSDL, podremos abrirlo pinchando dos veces sobre él y se nos abrirá un editor gráfico donde podremos crear todos los elementos que van a componer nuestro Entity Data Model del servicio oData (Entity Typex, Complex Types, Funciones Import …) como ya vimos en un post anterior.
Este editor gráfico es muy sencillo y nos permitirá de una manera muy intuitiva generar todos los componentes de nuestro EDM. En el ejemplo hemos creado el siguiente:

Una vez que tenemos todo creado, hacemos clic con el botón derecho en el archivo csdl.xml y seleccionamos «Generar servidor de datos móviles OData» para iniciar la generación de un proyecto Java que represente el servicio. En este paso se han generado todas las clases java que generan todas las acciones sobre las entidades definidas.
Por lo que la carpeta «srv» debería verse así:

Dentro de las clases que se generan (dentro de la carpeta java) para todas las acciones del servicio vamos a hacer mención de las carpetas listener y handler.
En la carpeta listener aparecerá una clase por cada EntityType creado con unos métodos que se ejecutan justo antes (beforeCreate) y después (afterCreate) de las determinadas operaciones CRUD que se hagan sobre esa EntityType. Esto nos permite hacer validaciones anteriores o acciones posteriores a cualquier operación
En la carpeta handler también aparecerá una clase por cada EntityType donde están los métodos que se encargan de realizar las operaciones CRUD en sí (createEntity).

El resto de clases sirven para el funcionamiento del servicio, y todas estas clases pueden ser modificadas. También destacar que en la carpeta resources tenemos dos carpetas para poder meter datos de test o datos iniciales para la EntityType en formato JSON para comenzar las pruebas sin tener la base de datos preparada.
Una vez que tenemos el servicio terminado pinchamos sobre el proyecto con el botón derecho y seleccionamos Build para generar el fichero mtar.

Una vez generado el fichero mtar, tendremos que hacer el deploy a SCP como aplicación Java para estar disponible, tal y como se muestra a continuación.

En nuestro SCP Cockpit (en este caso en Cloud Foundry) podemos comprobar que ya tenemos nuestra aplicación corriendo.

Y por lo tanto podemos hacer alguna llamada, por ejemplo desde postman, para obtener los metadatos de nuestro servicio oData.

Y con esto doy por concluido el post, espero que os sirva.
Deja una respuesta