An open API service indexing awesome lists of open source software.

https://github.com/booscaaa/go-api-test-unico

API do desafio de Go da UNICO
https://github.com/booscaaa/go-api-test-unico

cleanarch codecov gitflow golang logging swagger test

Last synced: about 1 month ago
JSON representation

API do desafio de Go da UNICO

Awesome Lists containing this project

README

          

























TESTE DE API


LINKS PARA AS INFORMAÇÕES SOBRE RELEASE, TESTES, COVERAGE E SWAGGER ABAIXO



Release
Test status
Coverage
Swagger docs








## Pré-requisitos

Para rodar o projeto se faz necessário a instalação de alguns recursos.

- A SDK do Go [nesse link](https://golang.org/).
- O Docker [nesse link](https://docs.docker.com/).




### Baixando

```bash
$ git clone git@github.com:booscaaa/go-api-test-unico.git
$ cd go-api-test-unico
```


### Rodando

```bash
$ docker-compose up --build -d
```


### Logs da api em desenvolvimento

```bash
$ docker logs api -f
```

- ENDPOINT_API: http://localhost:3000
- ENDPOINT_API_DOCS: http://localhost:3000/swagger/index.html
- ENDPOINT_PGADMIN: http://localhost:5050


### Importando os dados do CSV do teste

```bash
$ docker exec api go run ./adapter/cli/main.go importer
```


## Requests
- Para testar os endpoints da API basta clicar no botão abaixo e executar as request no insomnia. Ou em algum outro software seguindo a documentação: https://api-unico-test.herokuapp.com/swagger/index.html

Swagger docs



## Credênciais para desenvolvimento e conexão com o banco de dados pelo:
### PGADMIN
- login: admin@admin.com
- senha: admin
- host: postgres
- usuario do banco: postgres
- senha do banco: postgres
- porta do banco: 5432



## Arquivos de LOGS
- Os logs são gerados e armazenados por data na pasta `./logs` na raiz do projeto. A pasta é um mapeamento para o diretório /var/log dentro do container da API.



## Automações
- Testes rodam em qualquer push ou pull request: https://github.com/booscaaa/go-api-test-unico/actions/workflows/tests.yaml
- Deploy é realizado para produção no Heroku ao criar uma tag com prefixo v*: https://github.com/booscaaa/go-api-test-unico/actions/workflows/heroku-deploy.yaml
- O github actions envia os dados para o Codecov gerando relatórios de coverage: https://app.codecov.io/gh/booscaaa/go-api-test-unico



## Bibliotecas

- [Viper](github.com/spf13/viper)
- [Migrate](github.com/golang-migrate/migrate)
- [Cobra](github.com/spf13/cobra)
- [Gin](github.com/gin-gonic/gin)
- [SQLMock](github.com/DATA-DOG/go-sqlmock)
- [GoPaginate](github.com/booscaaa/go-paginate)
- [Faker](github.com/bxcodec/faker)
- [Validator](github.com/go-playground/validator)
- [Mock](github.com/golang/mock)
- [Sqlx](github.com/jmoiron/sqlx)
- [Swag](github.com/swaggo/swag)
- [Zap](go.uber.org/zap)