[PITCH] Como eu criei um clone do Insomnia no terminal com golang
Não você não leu errado, eu resolvi criar clone do Isomnia no terminal. Tudo isso começou porque eu decidi que queria aprender outras linguagens e não ficar refém apenas do ecossistema JavaScript. Uma das linguagens que eu resolvi aprender foi Golang, e meu primeiro projeto foi o gorest. A ideia seria criar uma aplicação de terminal que fosse inspirada no Insomnia, já que eu gosto de fazer tudo pelo terminal. Para isso eu usei a lib tview, a mesma usada em grandes projetos como o k9s.
Ideia de layout
Como o objetivo é ser semelhante ao Insomnia, eu coloquei a lista de requisições na esquerda, os parâmetros da requisição no meio e a resposta na direita.
Insomnia
Gorest
Organização de código
Como esse foi meu primeiro projeto, posso ter errado em alguns padrões, mas procurei seguir as especificações de projeto do golang standards.
Dificuldades
Sou do mundo do desenvolvimento web e a criação de uma aplicação visual de terminal com uma linguagem nova foi um pouco difícil no começo. A parte de debug me deixava perdido às vezes, mas foi muito bom ver o projeto tomar forma. Se você tem experiência com golang, por favor corrija meus erros (e vícios de outras linguagens).
Deploy
O deploy foi feito com a ferramenta goreleaser. Ele o build de projetos go, permitindo que você configure a cross-compilation e entregue os binários por meio de diversas plataformas. Vale a pena conhecer essa ferramenta. Por enquanto, eu estou usando apenas as releases do GitHub.
Roadmap
- Salvar requests localmente com sqlite;
- Poder colar requests curl como o Insomnia permite;
- Adicionar temas;
- Adicionar o gorest a alguns gerenciadores de pacotes como flatpak, snap, aur, winget etc;