2

Golang API Gateway

Golang API gateway that incorporates Rate Limiting using redis and JWT authentication.

The Gateway can be deployed as a with docker-compose, and the JWT authentication can be modified adding custom claims etc. The backend is a simple go app, modifiable too.

The project structure is:

.
├── cmd
│   └── main.go
├── config.yaml
├── Dockerfile
├── Dockerfile.backend
├── docker-compose.yml
├── go.mod
├── go.sum
├── internal
│   ├── auth
│   │   └── auth.go
│   ├── cache
│   │   ├── cache.go
│   │   └── middleware.go
│   ├── logging
│   │   └── logger.go
│   ├── proxy
│   │   └── proxy.go
│   ├── ratelimit
│   │   ├── middleware.go
│   │   └── ratelimiter.go
│   └── routes
│       ├── handlers.go
│       └── router.go
├── pkg
│   ├── middleware
│   │   ├── cors.go
│   │   └── recovery.go
│   └── utils
│       ├── http.go
│       └── json.go
├── backend
│   └── backend.go
├── gen_token.go
├── loadtest.sh
├── README.md
└── test
    └── integration
        ├── auth_test.go