
Pacotes utilizados:
go get -u github.com/swaggo/gin-swagger
go get -u github.com/swaggo/files
go install github.com/swaggo/swag/cmd/swag@latest
Link do projeto fronted: https://github.com/tadrianonet/next-todolist
Conforme nós vimos no vídeo da nossa aula anterior, na Clean Architecture, a camada de Repository tem o papel de intermediar a comunicação com a infraestrutura de dados, como bancos de dados e sistemas de armazenamento.
Sua principal função é abstrair a persistência, garantindo que a lógica de negócios, representada por entidades e casos de uso, permaneça independente de detalhes técnicos.
Para manter a organização e evitar acoplamento desnecessário, essa camada deve expor apenas os métodos essenciais para a manipulação dos dados. Isso reduz dependências desnecessárias e preserva a coesão do código, tornando o sistema mais modular e flexível.
Além disso, a camada de domínio não deve depender diretamente de uma implementação específica do repositório. Em vez disso, a abordagem recomendada é o uso de injeção de dependência, onde a interface do repositório é passada como parâmetro para os casos de uso. Isso permite que diferentes implementações possam ser utilizadas sem impactar a lógica central da aplicação.
Nos testes unitários, é possível substituir a implementação real do repositório por uma versão simulada, garantindo que os testes sejam executados sem a necessidade de um banco de dados real. Isso facilita a validação da lógica de negócios e melhora a eficiência dos testes.
Se este é o seu primeiro contato com a criação de APIs RESTful ou nunca desenvolveu uma solução utilizando Golang, MongoDB, Docker e conceitos de Clean Architecture, este curso é perfeito para você!
Vamos começar do básico ao avançado, explorando cada etapa do desenvolvimento de uma API moderna e eficiente, com foco total nas tecnologias que estão em alta no mercado. Mesmo que você esteja iniciando com Go, ao final terá segurança para aplicar essas práticas no seu dia a dia.
Além disso, disponibilizaremos um projeto frontend exclusivo para que você possa realizar testes completos com a API e entender como conectar todas as camadas da aplicação.
O que você vai aprender:
Gerenciamento de Dependências:
Uso do Go Modules (go mod) para controle e versionamento de dependências.
Boas práticas no gerenciamento de dependências em projetos Go.
Fundamentos de API RESTful:
Conceitos essenciais sobre APIs RESTful.
Introdução a pacotes e frameworks para desenvolvimento web em Go.
Criação de uma API inicial para entender estrutura e roteamento.
Arquitetura e Design:
Princípios da Clean Architecture.
Estruturação completa do projeto seguindo Clean Architecture.
Criação do Core da aplicação.
Implementação dos Use Cases.
Integração com dispositivos externos como MongoDB
Validação e Documentação da API:
Documentação completa utilizando Swagger (OpenAPI).