Ir para conteúdo
Fórum Script Brasil
  • 0

Chamada de web service por procedure


pvictor

Pergunta

Estou usando o sql server 2016 para consumir webservice por store procedure. Tenho um webservice em JSON retornando o seguinte:

[{"nome":"Rebecca","email":"rebecca@hotmail.com","ra":"12345"},{"nome":"Caroline","email":"caroline@hotmail.com","ra":"23456"},{"nome":"Vanessa","email":"vanessa@yahoo.com.br","ra":"99999"}]

Consigo consumi-lo passando uma variável. Se eu deixar meu webservice para receber um parametro e passa-lo eu consigo retornar nome e email do aluno. Porém se eu deixar meu webservice sem a necessidade de receber parametro e retirar a passagem de parametro da procedure e executar, minha procedure retorna null. O que eu preciso mudar no meu código para conseguir retornar a lista completa de alunos que meu webservice expoe?

Segue meu código com passagem de parametros que retorna o usuário do RA correspondente:

create PROCEDURE webservice_parametros (@RA as varchar (5))
AS
BEGIN

DECLARE @OBJ INT;
DECLARE @URL VARCHAR(200);
DECLARE @RESPONSE VARCHAR(8000);

SET @URL = 'http://dominio:8080/v1/alunos/' + @RA
EXEC SP_OACREATE 'MSXML2.ServerXMLHttp', @OBJ out
EXEC SP_OAMETHOD @OBJ, 'OPEN', NULL, 'GET', @URL, FALSE
EXEC SP_OAMETHOD @OBJ, 'SEND'
exec SP_OAGETPROPERTY @OBJ, 'responseText', @RESPONSE out
EXEC SP_OADESTROY @OBJ

SELECT JSON_VALUE(@RESPONSE, '$.nome') as nome,
    JSON_VALUE(@RESPONSE, '$.email') as email

END     

execute webservice_parametros '12345'

Meu código que retorna null para um serviço que não precisa de parâmetros

create PROCEDURE webservice
AS
BEGIN

DECLARE @OBJ INT;
DECLARE @URL VARCHAR(200);
DECLARE @RESPONSE VARCHAR(8000);

SET @URL = 'http://dominio:8080/v1/alunos/'
EXEC SP_OACREATE 'MSXML2.ServerXMLHttp', @OBJ out
EXEC SP_OAMETHOD @OBJ, 'OPEN', NULL, 'GET', @URL, FALSE
EXEC SP_OAMETHOD @OBJ, 'SEND'
exec SP_OAGETPROPERTY @OBJ, 'responseText', @RESPONSE out
EXEC SP_OADESTROY @OBJ

SELECT JSON_VALUE(@RESPONSE, '$.nome') as nome,
    JSON_VALUE(@RESPONSE, '$.email') as email

END     

execute webservice
Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...