¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como criar REST APIs no SAP XSA: Guia passo a passo

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 6 Vistas
0
Cargando...
Nos meus últimos blogs da série em desenvolvimento da plataforma #XSA, escrevi alguns artigos sobre módulos de node, OData, entre outros conceitos. Hoje, quero aprofundar neste tema e compartilhar detalhes sobre como criar APIs REST. Este blog também pode ser lido em inglês aqui







*Uma diferença neste blog em relação aos anteriores é que nos anteriores usei a versão SP03, no entanto, neste estou usando a versão SP04. Também adiciono que estou tentando evitar a ferramenta XS CLI, pois muitos administradores não concedem acesso a esse tipo de ferramenta em algumas empresas.



Desafio 1: habilitar o uso do serviço UAA para autenticar as solicitações no módulo de node JS.

Solução: é muito simples. Os passos iniciais foram documentados anteriormente, mas os incluirei aqui novamente.

  • Garanta que o arquivo mta.yaml tenha suas dependências (html, db, node, uaa), refiro-me às seções requires/provides configuradas corretamente

  • Verifique se o arquivo xs-app.json contém a autenticidade do tipo "route" e as rotas atuais

  • Assumindo que ambos os módulos de compatibilidade XSJS e node js são suportados no módulo de node, prossiga e faça o bootstrap desses elementos no arquivo server.js


O arquivo server.js é a entrada principal (e por padrão é como é iniciado a partir do arquivo package.json)

  • Em seguida, a partir do arquivo server.js, o router (módulo express) é chamado para analisar a solicitação e eventualmente passar a execução correspondente

  • Observe que as rotas definidas no módulo ui em seu arquivo xs-app.json devem ser iguais às rotas definidas no arquivo index.js do módulo tipo node, caso contrário resultará em http 404 "Não encontrado"




Obrigado Lucia e Craig pelos exemplos, foram muito úteis e de grande ajuda.









  • No folder (router), o arquivo index.js acima, também estamos importando um serviço chamado demoSvc.js (a implementação do serviço) onde executaremos o sql ou as stored procedures (assumindo que estas tenham sido criadas no módulo db e que o usuário tenha acesso correspondente para executar esses artefatos). Durante meus exercícios, criei uma tabela cds local, uma stored proc e inseri dados na tabela cds.


Uma vez que tudo isso estava em ordem, era apenas uma questão de inserir o código nodejs para executar sql ou carregar os procedimentos.

IMO Melhores práticas dizem que devemos executar a maior parte da lógica no BD (usando procedures), mas também quero ver como funciona a forma de executar SQL a partir do módulo node JS - foi muito fácil na minha opinião.







Se teve sorte e continua sem erros, vamos ver agora como chamar uma consulta SELECT.







  • Observe que o objeto req (contém uma propriedade db que eventualmente é atribuída como client) e que é usada para executar nossa instrução sql

  • A função prepare recebe uma instrução sql como primeiro argumento e um retorno de chamada para erros e instruções

    • O err agora informa imediatamente se não temos permissões ou se há algum outro erro com nossa consulta

    • O objeto statement nos permite executar nossa consulta como mostrado no ponto seguinte

    • A função exec recebe um parâmetro inicial e um retorno de chamada, novamente, o retorno de chamada retorna um erro e os resultados (que ATM!!! Os dados, se algo retornar da consulta)

    • Pode-se incluir lógica adicional para manipular a resposta antes de retorná-la à solicitação, ou no meu caso, retornar um objeto personalizado como resposta

    • Por fim, o objeto res da resposta (da solicitação original) é configurado para Este es el HTML mejorado y traducido al portugués.
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?