Avalados por :

Profundizando en la creación de APIs REST con Node.js y OData: Desafíos y Soluciones

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 0 Vistas
0
Loading...
En mis últimos blogs de la serie sobre #XSA, escribí sobre la creación de módulos de node js, exponiendo OData, entre otros conceptos. Hoy, me gustaría profundizar en este tema y proporcionar detalles adicionales sobre la creación de APIs REST. El mismo blog se puede leer en español aquí.





*una diferencia de mis blogs anteriores a ahora es que estaba usando SP03 antes, ahora SP04. Además, estaba tratando de evitar usar XS CLI ya que sé que es un tema delicado para los administradores que proporcionan acceso a Linux a los desarrolladores en la mayoría de las empresas.



Desafío 1: habilitar el servicio UAA para autenticar las solicitudes en el módulo node.

Solución: en realidad es muy simple. Los pasos iniciales ya estaban documentados, pero los incluiré aquí de todos modos.

  • Asegúrese de que el archivo mta.yaml tenga las dependencias del módulo (html, db, node, uaa), esto se refiere a la sección requires/provides y asegurarse de que estén hechos correctamente

  • Asegúrese de que el archivo xs-app.json contenga el tipo de autenticación "route" y las rutas reales

  • Suponiendo que tanto la compatibilidad con XSJS como el soporte node js estén habilitados en el módulo node, proceda a inicializar estos elementos desde el archivo server.js


El archivo server.js es el archivo de punto de entrada (según el paso de inicio predeterminado en el archivo package.json)

  • Luego, desde el archivo server.js, se llama al enrutador (módulo express) para analizar la solicitud y pasarla eventualmente a la ejecución de la función correspondiente.

  • Observe que las rutas definidas en el archivo xs-app.json del módulo de UI DEBEN coincidir con las rutas definidas en el archivo index.js del enrutador de node, de lo contrario, obtendrá respuestas http 404 "No encontrado"




Gracias a Lucía y Craig por sus blogs











  • En el archivo index.js de la carpeta de enrutador, también estamos importando demoSvc.js (implementación del servicio) donde ejecutaremos scripts SQL o procedimientos almacenados (asumiendo que estos ya están creados en el módulo de base de datos y tenemos los permisos adecuados para ejecutarlos). Durante mi ejercicio, creé una tabla cds local, un proc y agregué algunos datos a mi tabla cds.


Una vez alineadas estas cosas, solo fue cuestión de agregar la lógica node js real para ejecutar consultas o procedimientos.

En mi opinión, las mejores prácticas serían impulsar más en la base de datos (usando procedimientos) pero también estaba curioso por ver cómo se hacía el método SQL desde un módulo node, sorprendentemente fácil en mi opinión.



En primer lugar, verifique que pueda recibir una solicitud y responder correctamente. Utilizo solicitudes/respuestas json porque la mayoría de las aplicaciones web y API REST interactúan de esa manera.





Si tiene éxito en el paso anterior, entonces procedamos a llamar a una consulta SELECT.









  • Observe cómo el objeto req (contiene una propiedad db que eventualmente es el cliente) y se utiliza para ejecutar nuestra declaración SQL

  • La función preparar toma una declaración SQL como primer parámetro, y un callback que devuelve errores y declaraciones

    • El error nos informaría de inmediato si no tenemos permisos o si hay algún otro problema con nuestra consulta

    • El objeto de declaración nos permite ejec
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?