Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 940 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado (editado)

Pessoal, estou começando a desenvolver uma API(Horse) e estou usando a estrutura do Swagger,

já consigo fazer o que preciso na parte de conexão com o banco, retornos, ec, mas tô me batendo para colocar a parte do JWT, estou estudando o projeto Kambana

e empaquei nessa parte: THorse.Get('/login', BasicAuthorization(), DoGetLogin); 

ele da erro dizendo que falta parâmetro.

Acredito que seja por conta da versão do Horse que estou usando a 3.0.1

eu tenho na minha estrutura de Login assim:

 type
   [SwagPath('usuario/token', 'Token')]   
   TLoginController = class
 private
     FRequest  : THorseRequest;
     FResponse : THorseResponse;
   public
     [SwagGET('Retornar o Token para acessar a API')]
     [SwagResponse(200, TLogin, 'Token', True)]
     procedure executaBasicLogin;
     constructor Create(Req: THorseRequest; Res : THorseresponse);
     destructor Destroy; override;
 end;
 

e aqui, nessa procedure preciso encaixar a autenticação,

mas sem chamar conforme o Kambana que faz assim: THorse.Get('/login', BasicAuthorization(), DoGetLogin); 

pois na classe já está embutida a parte do registro da rota com o Swagger.

a Procedure esta assim:

procedure TLoginController.executaBasicLogin;
begin

  //Horse.GET('/login', BasicAuthorization(), DoGetLogin);

THorse.Use('/token', BasicAuthorization(),DoGetLogin);

end;
 

mas acredito que teri que fazer de outra forma sem passar o "Path"(Apenas essa parte "BasicAuthorization(),DoGetLogin"

Alguém saberia me ajudar ?

 

Editado por Zottis
Erro de Escrita

Se quiser ir rápido, vá sozinho.
Se quiser ir longe, vá em grupo.
Provérbio Africano.

2024 ano XXVII

Postado

Oi Juliomar, obrigado pelo retorno, é que com o Swagger, pelo que entendi e está funcionando, já tem o endPoint

e quando cai na procedure "executaBasicLogin" que está na classe já é para executar os comandos.

 [SwagPath('usuario/token', 'Token')]   
   TLoginController = class
 private
     FRequest  : THorseRequest;
     FResponse : THorseResponse;
   public
     [SwagGET('Retornar o Token para acessar a API')]
     [SwagResponse(200, TLogin, 'Token', True)]
     procedure executaBasicLogin; 

Se quiser ir rápido, vá sozinho.
Se quiser ir longe, vá em grupo.
Provérbio Africano.

2024 ano XXVII

Postado

nos testes que fiz, ele retorna o que pedi com os endPoints colocados dessa maneira,
mas mesmo tentando compilar conforme está no projeto Kambana, ele da erro

procedure TLoginController.executaBasicLogin;
begin
    THorse.Use('/token', BasicAuthorization(),DoGetLogin);
 end;
[dcc32 Error] Controller.Login.pas(100): E2034 Too many actual parameters

acredito que seja por conta da versão do horse, mas não consegui corrigir

 

Se quiser ir rápido, vá sozinho.
Se quiser ir longe, vá em grupo.
Provérbio Africano.

2024 ano XXVII

Postado

no texto acima está como THorse.Use, testei também com o THorse.GET e da o mesmo erro

Se quiser ir rápido, vá sozinho.
Se quiser ir longe, vá em grupo.
Provérbio Africano.

2024 ano XXVII

Postado

Fiz um teste com o Projeto kambana-api com o Horse 3.0.1
e as outras dependencias mais atuais 
e não funciona

 

Se quiser ir rápido, vá sozinho.
Se quiser ir longe, vá em grupo.
Provérbio Africano.

2024 ano XXVII

  • Moderadores
  • Solution
Postado
1 hora atrás, Zottis disse:

[dcc32 Error] Controller.Login.pas(100): E2034 Too many actual parameters

Está informando 3 parâmetros para um método que só aceita 2.

O Juliomar te passou o grupo deles no Telegram, é a forma mais rápida de conseguir ajuda.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Postado

Obrigado BigWings, entrei lá, tanto no Instagran como no Discord, mas ninguém respondeu ainda.
"Está informando 3 parâmetros para um método que só aceita 2."

estou fazendo conforme o exemplo,

seguindo sua orientação, eu tirei um parâmetro, e compilou, mas agora fica a dúvida?
Como faço para ele redirecionar para a procedure  "
DoGetLogin"?

 

Se quiser ir rápido, vá sozinho.
Se quiser ir longe, vá em grupo.
Provérbio Africano.

2024 ano XXVII

  • Este tópico foi criado há 940 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.