Avalados por :

Cómo crear REST APIs en SAP XSA: Guía paso a paso

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 4 Vistas
0
Cargando...
En mis últimos blogs de la serie en desarrollo de la plataforma #XSA, escribí algunos artículos acerca de módulos de node, OData, entre otros conceptos. Hoy, quiero dar un deep dive en este tema y compartir detalles en cómo crear REST APIs. Este blog puede leerse en inglés también aquí







*Una diferencia en este blog con mis anteriores es que en los anteriores usé la versión SP03, sin embargo, en este estoy usando la versión SP04. Añado también que estoy tratando de evitar la herramienta XS CLI dado a que muchos admins no dan acceso a este tipo de herramientas en algunas compañías.



Reto 1: habilitar el uso del servicio UAA para autenticar los requests en el módulo de node JS.

Solución: es muy simple. Los pasos iniciales fueron documentados anteriormente, pero los incluiré aquí de nuevo.

  • Asegúrate de que el archivo mta.yaml tenga sus dependencias (html, db, node, uaa) me refiero a que las secciones de requires/provides estén configuradas correctamente

  • Asegúrate que el archivo xs-app.json contenga la autenticidad de tipo "route", y las rutas actuales

  • Asumiendo que ambos módulos XSJS compatibility y node js sean soportados en el módulo de node, continúa y has el bootstrap de estos elementos en el archivo server.js


El archivo server.js es la entrada principal (y por default es como se inicia desde el archivo package.json)

  • Luego, desde el archivo server.js, el (módulo express) router llama para analizar el request y eventualmente pasar la ejecución correspondiente

  • Nota que las rutas definidas en el módulo ui en su archivo xs-app.json deben ser iguales a las rutas definidas en el archivo index.js del módulo tipo node, de otra manera resultará en http 404 "Not found"




Gracias Lucia y Craig por sus ejemplos, me sirvieron y fueron de mucha ayuda.









  • En el folder (router) el archivo index.js arriba, también estamos importando un servicio llamado demoSvc.js (la implementación del servicio) donde ejecutaremos el sql o las stored procedures (asumiendo que estas hayan sido creadas en el módulo db y que el usuario tenga el acceso correspondiente para ejecutar dichos artefactos). Durante mis ejercicios, yo creé una tabla cds local, un stored proc e inserté data a la tabla cds.


Una vez que todo esto estaba en orden, era solamente tiempo de ingresar el código nodejs para ejecutar sql o cargar los procedures.

IMO Best practices dicen que tenemos que ejecutar la mayor parte de la lógica en la BD (usando procedures) pero también quiero ver cómo funciona la forma de ejecutar SQL desde el módulo node JS – fue muy fácil en mi opinión.







Si tuviste suerte y continuas sin errores, veamos ahora cómo se llama un SELECT query.







  • Nota que el objeto req (contiene una propiedad db que eventualmente se asigna como client) y que es utilizada para ejecutar nuestro sql statement

  • La función prepare toma un sql statement como el primer argumento, y un callback regresa errors & statements

    • El err now hace saber inmediatamente si no tenemos permisos o si hay algún otro error con nuestro query

    • El object statement nos permite ejecutar nuestro query como es mostrado en el siguiente punto

    • La función exec toma un parámetro inicial, & un callback, nuevamente, el callback regresa un error y los resultados (que ATM!!! La data si es que algo regresa del query)

    • Podemos incluir lógica adicional para manipular la respuesta antes de regresarla al request, o en mi caso, regresar un objeto custom como respuesta

    • Finalmente, el objeto res ponse (del request original) se configura para
Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

Sin respuestas

No hay respuestas para mostrar No hay respuestas para mostrar Se el primero en responder

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?