Ecosyste.ms: Awesome

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

https://github.com/AleksK1NG/Go-Clean-Architecture-REST-API

Golang Clean Architecture REST API example
https://github.com/AleksK1NG/Go-Clean-Architecture-REST-API

aws-s3 clean-architecture docker example-project go golang gomock jaeger pgx postgresql redis rest-api sqlx swagger testify tracing viper zap

Last synced: 24 days ago
JSON representation

Golang Clean Architecture REST API example

Lists

README

        

### Golang [Clean Architecture](https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html) REST API example 🚀

#### 👨‍💻 Full list what has been used:
* [echo](https://github.com/labstack/echo) - Web framework
* [sqlx](https://github.com/jmoiron/sqlx) - Extensions to database/sql.
* [pgx](https://github.com/jackc/pgx) - PostgreSQL driver and toolkit for Go
* [viper](https://github.com/spf13/viper) - Go configuration with fangs
* [go-redis](https://github.com/go-redis/redis) - Type-safe Redis client for Golang
* [zap](https://github.com/uber-go/zap) - Logger
* [validator](https://github.com/go-playground/validator) - Go Struct and Field validation
* [jwt-go](https://github.com/dgrijalva/jwt-go) - JSON Web Tokens (JWT)
* [uuid](https://github.com/google/uuid) - UUID
* [migrate](https://github.com/golang-migrate/migrate) - Database migrations. CLI and Golang library.
* [minio-go](https://github.com/minio/minio-go) - AWS S3 MinIO Client SDK for Go
* [bluemonday](https://github.com/microcosm-cc/bluemonday) - HTML sanitizer
* [swag](https://github.com/swaggo/swag) - Swagger
* [testify](https://github.com/stretchr/testify) - Testing toolkit
* [gomock](https://github.com/golang/mock) - Mocking framework
* [CompileDaemon](https://github.com/githubnemo/CompileDaemon) - Compile daemon for Go
* [Docker](https://www.docker.com/) - Docker

#### Recomendation for local development most comfortable usage:
make local // run all containers
make run // it's easier way to attach debugger or rebuild/rerun project

#### 🙌👨‍💻🚀 Docker-compose files:
docker-compose.local.yml - run postgresql, redis, aws, prometheus, grafana containrs
docker-compose.dev.yml - run docker development environment
docker-compose.delve.yml run development environment with delve debug

### Docker development usage:
make docker

### Local development usage:
make local
make run

### SWAGGER UI:

https://localhost:5000/swagger/index.html

### Jaeger UI:

http://localhost:16686

### Prometheus UI:

http://localhost:9090

### Grafana UI:

http://localhost:3000