fiap-tech-challenge-payment-api

Paymentis a microservices of fiap-tech-challenge-restaurant project

Stars
0
Committers
1

FIAP challenge - Payment

Project Architecture by Clean Architecture

  • app/web: diretório para os principais pontos de entrada, injeção dependência ou comandos do aplicativo. O subdiretório ‘web’ contém o ponto de entrada principal a API REST.
  • domain/entities: diretório que contém modelos/entidades de domínio que representam os principais conceitos de negócios.
  • domain/usecases: diretório que contém Serviços de Domínio ou Use Cases.
  • domain/ports: diretório que contém ‘interfaces’ ou contratos definidos que os adaptadores devem seguir.
  • frameworks/rest: diretório que contém os controllers e manipulador de requisições REST.
  • frameworks/rest/dto: diretório que contém objetos/modelo de request e response.
  • frameworks/repository: diretório que contém adaptadores de banco de dados exemplo para PostgreSQL.
  • frameworks/repository/dbo: diretório que contém objetos/entidades de banco de dados.
  • .infra: diretório que contém arquivos de infrainstrutura
  • .infra/kubernetes: diretório que contém os manifestos kubernetes

Stack

Issues

  • gin-swagger - gin middleware to automatically generate RESTful API documentation with Swagger 2.0.
  • swag - Swag converts Go annotations to Swagger Documentation 2.0
  • CORS gin's middleware - Gin middleware/handler to enable CORS support.

Development

Dependencies

Check for go version 1.21.3

go version

Preparing app

git clone [email protected]:fabianogoes/fiap-tech-challenge-payment-api.git
cd fiap-tech-challenge-payment-api
go mod tidy

Running

docker-compose up -d mongo && go run app/web/main.go

Testing using Docker/Docker Compose

docker-compose up -d

curl --request GET --url http://localhost:8010/health

## response 
{"status":"UP"}

Docker Commands

docker login -u=fabianogoes
docker build -t fabianogoes/payment-api:latest .
docker tag fabianogoes/payment-api:latest fabianogoes/payment-api:latest
docker push fabianogoes/payment-api:latest

Run test

go test -v ./...

Run test with coverage

 go test -coverprofile=coverage.out ./... &&  go tool cover -func=coverage.out
Badges
Extracted from project README
CI Quality Gate Status Sonar Coverage
Related Projects