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: 3 months ago
JSON representation
Golang Clean Architecture REST API example
- Host: GitHub
- URL: https://github.com/AleksK1NG/Go-Clean-Architecture-REST-API
- Owner: AleksK1NG
- Created: 2020-09-20T16:28:17.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-20T13:29:00.000Z (8 months ago)
- Last Synced: 2024-06-12T09:42:38.892Z (7 months ago)
- Topics: aws-s3, clean-architecture, docker, example-project, go, golang, gomock, jaeger, pgx, postgresql, redis, rest-api, sqlx, swagger, testify, tracing, viper, zap
- Language: Go
- Homepage:
- Size: 613 KB
- Stars: 707
- Watchers: 7
- Forks: 143
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
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