{"id":25615296,"url":"https://github.com/eneas-almeida/go-account-api-mongodb","last_synced_at":"2026-05-06T13:33:46.703Z","repository":{"id":273015775,"uuid":"733988574","full_name":"eneas-almeida/go-account-api-mongodb","owner":"eneas-almeida","description":"Account API é um microserviço desenvolvido em GoLang, que utiliza um padrão arquitetural Clean Architecture.","archived":false,"fork":false,"pushed_at":"2024-01-08T03:44:28.000Z","size":385,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"main","last_synced_at":"2025-01-18T03:27:14.024Z","etag":null,"topics":["clean-architecture","docker-compose","fiber","golang","makefile","mongodb"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/eneas-almeida.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-12-20T15:41:53.000Z","updated_at":"2024-01-05T23:16:00.000Z","dependencies_parsed_at":"2025-01-18T03:38:19.311Z","dependency_job_id":null,"html_url":"https://github.com/eneas-almeida/go-account-api-mongodb","commit_stats":null,"previous_names":["eneas-almeida/go-account-api-mongodb"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eneas-almeida%2Fgo-account-api-mongodb","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eneas-almeida%2Fgo-account-api-mongodb/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eneas-almeida%2Fgo-account-api-mongodb/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/eneas-almeida%2Fgo-account-api-mongodb/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/eneas-almeida","download_url":"https://codeload.github.com/eneas-almeida/go-account-api-mongodb/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240118889,"owners_count":19750571,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["clean-architecture","docker-compose","fiber","golang","makefile","mongodb"],"created_at":"2025-02-22T03:19:08.157Z","updated_at":"2026-05-06T13:33:46.637Z","avatar_url":"https://github.com/eneas-almeida.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Go Account API MongoDB\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://github.com/venzel/golang\"\u003e\u003cimg src=\"./media/images/golang.png\" width=\"50px\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003e **Account API** é um microserviço que utiliza um padrão arquitetural Clean Architecture.\n\n## Stack\n\n-   Golang;\n-   Docker (MongoDB);\n\n## Considerações iniciais\n\n-   Foi utilizado o \u003ca href=\"https://docs.gofiber.io/\"\u003eFiber\u003c/a\u003e;\n-   Foi utilizado o mongodb como persistência de dados;\n\n`O que é o Fiber?`\n\n\u003cp align=\"center\"\u003e\n    \u003ca href=\"https://docs.gofiber.io/\"\u003e\u003cimg src=\"./media/images/fiber.png\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\nO Fiber é um framework web construído em Go, inspirado no Express.js do Node.js e é projetado para criar aplicativos web rápidos e eficientes em Go.\n\n### Middlewares nativos do Fiber utilizado no projeto\n\n| Middlewares |                                                                                                             |\n| :---------- | :---------------------------------------------------------------------------------------------------------- |\n| Cors        | Fornece um conjunto de regras e cabeçalhos HTTP, para segurança da API.                                     |\n| Helmet      | Fornece um conjunto de middlewares para segurança da API.                                                   |\n| Logger      | Registra detalhes de solicitação/resposta HTTP.                                                             |\n| Recover     | Recupera o evento Panic em qualquer parte da aplicação e fornece controle centralizado para o ErrorHandler. |\n| Limiter     | Limita em um determinado espaço de tempo, a quantidade de solicitações HTTP para a API.                     |\n| RequestId   | Gera um id aleatório para cada requisição HTTP na aplicação, útil para o registro de transações.            |\n\n## Documentações\n\n-   [Fiber](https://docs.gofiber.io/)\n\n## Padrão arquitetural (Clean Architecture)\n\n\u003cp align=\"center\"\u003e\n    \u003cimg src=\"./media/images/clean.svg\" /\u003e\n\u003c/\u003e\n\n**Imagem:** Otávio Lemos\u003cbr /\u003e\n\nA escolha do padrão **Clean Architecture** para um projeto de software pode trazer diversos benefícios, mas é importante ressaltar que a escolha de uma arquitetura depende muito das necessidades específicas do projeto, das características da equipe de desenvolvimento e das metas a serem alcançadas.\n\n**Principais vantagens:**\n\n-   Separação de responsabilidades;\n-   Independência de frameworks e bibliotecas;\n-   Testabilidade;\n-   Adaptabilidade a mudanças;\n-   Escalabilidade;\n-   Longevidade do software;\n-   Compreensão e colaboração.\n\n## FAQ de comandos rápidos\n\n```bash\n# Baixa um pacote específico\ngo get \u003cnome_do_pacote\u003e\n\n# Importa todos os pacotes\ngo mod tidy\n\n# Verifica as variáveis de ambiente do Go\ngo env\n\n# Instala um pacote executável dentro da pasta bin\ngo install \u003cnome_do_pacote\u003e\n```\n\n## Pacotes utilizados\n\n-   github.com/gofiber/fiber/v2\n-   go.mongodb.org/mongo-driver/mongo\n-   go get -u github.com/cosmtrek/air\n-   go get github.com/pilu/fresh\n\n## Como utilizar o reload com o fresh\n\n```bash\n# Instala o executável\ngo install github.com/pilu/fresh\n\n# Para verificar a pasta que foi instalado\n# Fica dentro da bin\necho $GOPATH\n```\n\n### Configurações do fresh\n\n```bash\n# Cria o arquivo .fresh.conf e insere o código abaixo:\n\nroot: .\n\ncommand: go run main.go\n\nbuild_name: main\n\nbuild_log: ./tmp/main.log\n\nlog_color: true\n\nexclude_dirs:\n  - tmp\n  - vendor\n  - .git\n\ninclude_files:\n  - .go\n```\n\n### Como executar o fresh\n\n```bash\n# Apenas execute com o comando abaixo, irá carregar o arquivo de conf\nfresh\n```\n\n### Configurações para o debug\n\n```bash\n# Cria o arquivo .vscode/launch.json\n{\n    \"configurations\": [\n        {\n            \"name\": \"Launch\",\n            \"type\": \"go\",\n            \"request\": \"launch\",\n            \"mode\": \"debug\",\n            \"program\": \"${workspaceFolder}\",\n            \"env\": {},\n            \"args\": []\n        }\n    ]\n}\n```\n\n\u003cdiv\u003e\n  \u003cimg align=\"left\" src=\"https://imgur.com/k8HFd0F.png\" width=35 alt=\"Profile\"/\u003e\n  \u003csub\u003eMade with 💙 by \u003ca href=\"https://github.com/venzel\"\u003eEnéas Almeida\u003c/a\u003e\u003c/sub\u003e\n\u003c/div\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feneas-almeida%2Fgo-account-api-mongodb","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Feneas-almeida%2Fgo-account-api-mongodb","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Feneas-almeida%2Fgo-account-api-mongodb/lists"}