-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[Sugestão] Adicionar tipagem e validação de dados nos métodos da SDK #8
Comments
Estou usando com nestjs e nem os métodos estão aparecendo quando crio a instância...não faz sentido fazer uma lib em typescript e não ser type safe. |
Já passei por isso, tá aí: Schema do zod para notificações via webhook:
E para a API do bolix:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uma sugestão que melhoraria muito a SDK: adicionar tipos aos métodos, de modo que o desenvolvedor saiba quais valores são aceitos para cada parâmetro da SDK e quais valores a API vai retornar. Isso melhoria muito a DevX, porque o desenvolvedor não precisaria ficar lendo a documentação pra saber quai(s) campos são obrigatórios, e o próprio ambiente de desenvolvimento pode retornar se o objeto estiver incompleto ou inválido, por exemplo.
Estou falando de algo mais ou menos assim:
Daí a SDK poderia exigir este tipo no parâmetro body dos método que cria o Bolix, por exemplo.
Uma outra abordagem, mais sofisticada, seria adicionar uma biblioteca de validação de dados à SDK, como por exemplo o Zod.
Isso permitiria ao aplicativo validar os dados em tempo de execução, antes do envio para a Gerencianet. Desta forma, por exemplo, caso o usuário insira um CNPJ inválido, a própria SDK validaria este campo, sem necessidade de enviar os dados inválidos para a API só pra receber uma resposta de erro.
O Zod permite a validação de tipos em runtime, o que estende a segurança de tipo da aplicação, já que o Typescript faz a validação somente em build time.
Eu mesmo montei a validação "por tentativa e erro" aqui, mas sinto que está incompleto. Se a SDK fizesse isso, seria bem legal.
Caso os mantenedores gostem da ideia, eu mesmo posso fazer uma PR implementando as sugestões.
The text was updated successfully, but these errors were encountered: