Boa tarde!
Tenho que criar um serviço WSRESTFUL que receba Headers que contem hífen no nome, por exemplo: X-Token Não consigo criar uma variável com hífen no nome, como realizo esse tratamento? Obrigado!
Boa tarde!
Tenho que criar um serviço WSRESTFUL que receba Headers que contem hífen no nome, por exemplo: X-Token Não consigo criar uma variável com hífen no nome, como realizo esse tratamento? Obrigado!
Olá Gustavo,
Você pode atribuir o valor a uma variável da seguinte forma:
Local cMinhaVariavel := ::GetHeader( "X-Token" )
Ou seja, se você requisitar o serviço com um header X-Token: 1b4053ba-0dd0-4bd0-a892-a62bcb1f8e44, a variável cMinhaVariavel terá o valor com a função acima igual á 1b4053ba-0dd0-4bd0-a892-a62bcb1f8e44.
Espero ter ajudado!
Tentei dessa forma, mas o problema é que quando envio um Header que não está presente no WSRECEIVE do serviço ele nem inicia a chamada.
— GUSTAVO VANAZZI 13 de Nov de 2019Gustavo, fiz os testes aqui e realmente a solução apresentada pelo Lucas é válida.
Mesmo sem declarar no WSDATA ou no WSRECEIVE o GetHeader("X-Token") funciona, entretanto precisei utilizar a notação self:GetHeader("X-Token").
— Marcos Felipe Rezende Xavier 05 de Feb de 2020
Boa tarde Gustavo, você não precisa criar uma variável com o mesmo nome do header, o content-type por exemplo tem hífen e transita normalmente pelos headers do REST no Protheus.
— Daniel Mendes 12 de Nov de 2019Pelo que entendi você precisa informar um HeaderParms com o nome X-Token correto? Se for isto realmente não sei como poderia fazer isto, porque os parâmetros que tem no Header que tem hifen já são padrões do Rest, não imagino como adicionar um novo na declaração do método WSMETHOD. Se achar uma solução compartilha por favor.
— Pedro Vilas Boas 03 de Dec de 2019