Cold blue gateway between frontend and Rust microservices. Minimal. Fast. Dockerized. Swagger-ready.
NeverNet Edge API is a Go-based HTTP gateway / BFF that communicates with Rust backend services over gRPC.
It is designed as a replacement for backend/apps/edge-api and exposes a stable REST interface for the frontend.
SYSTEM :: ONLINE
INTERFACE :: BLUE
TRANSPORT :: HTTP <-> gRPC
STATUS :: STABLE
MODE :: EDGE API
SYNC :: READY
- Go
- chi — HTTP router
- gRPC Go — Rust service clients
- Swagger / OpenAPI
- Docker
- Env-based config
- REST API gateway
- gRPC bridge to Rust backend
- health endpoints
- Swagger / OpenAPI docs
- CSRF + cookie auth flow
- Docker-ready deploy
- simple hackathon-friendly structure
.
├── api/
├── assets/
│ └── Ayanami.jpg
├── cmd/
│ └── edge-api/
├── gen/
├── internal/
│ ├── app/
│ ├── config/
│ ├── docs/
│ ├── grpcclient/
│ ├── handlers/
│ ├── middleware/
│ └── response/
├── .dockerignore
├── .env.example
├── .gitignore
├── buf.gen.yaml
├── buf.yaml
├── docker-compose.local.yml
├── Dockerfile
├── go.mod
├── go.sum
├── Makefile
└── README.md
git clone https://github.com/Denbay0/TestApi.git
cd TestApicp .env.example .envCopy-Item .env.example .env -Forcego mod tidy
go mod vendor
go build ./cmd/edge-apigo run ./cmd/edge-apiService will be available at:
http://localhost:8080http://localhost:9100
When you open http://localhost:8080/ in a browser, the service now returns a small landing page with links to docs, OpenAPI artifacts, and health checks instead of a 404.
After startup:
- Swagger UI →
http://localhost:8080/docs - OpenAPI JSON →
http://localhost:8080/openapi.json - OpenAPI YAML →
http://localhost:8080/openapi.yaml
The /docs page is fully self-contained, uses only assets served by the edge-api process itself, and fetches the local /openapi.json, so it remains available without internet access. The page groups endpoints by tags, shows request/response schemas and examples, documents cookie + CSRF security, and includes a built-in Try it out flow for interactive requests.
Quick browser checks:
http://localhost:8080/http://localhost:8080/docshttp://localhost:8080/openapi.jsonhttp://localhost:8080/openapi.yamlhttp://localhost:8080/healthhttp://localhost:8080/healthz
curl http://localhost:8080/health
curl http://localhost:8080/healthz
curl http://localhost:9100/healthdocker pull golang:1.23-alpine
docker pull alpine:3.20docker build -t edge-api:test .docker run --rm -p 8080:8080 -p 9100:9100 --env-file .env edge-api:testAfter the container starts, open /docs in your browser or use the smoke-test commands below.
curl -i http://localhost:8080/
curl -i http://localhost:8080/favicon.ico
curl -i http://localhost:8080/health
curl -i http://localhost:8080/healthz
curl -i http://localhost:8080/openapi.json
curl -i http://localhost:8080/openapi.yamldocker compose -f docker-compose.local.yml up --buildIf an external network is required:
docker network create rust-backendPORT=8080
METRICS_PORT=9100
REDIS_URL=redis://redis:6379
IDENTITY_SERVICE_URL=http://identity-svc:50051
EVENT_COMMAND_SERVICE_URL=http://event-command-svc:50052
EVENT_QUERY_SERVICE_URL=http://event-query-svc:50053
REPORT_SERVICE_URL=http://report-svc:50054
FRONTEND_ORIGINS=http://localhost:3000,http://localhost:5173
AUTH_COOKIE_SECURE=falseGET /api/auth/csrfPOST /api/auth/registerPOST /api/auth/loginPOST /api/auth/logoutGET /api/auth/me
GET /api/categoriesGET /api/eventsPOST /api/eventsGET /api/calendarGET /api/dashboardGET /api/reports/summaryGET /api/reports/by-categoryGET /api/settingsPUT /api/settingsGET /api/exports
Tracked:
go.modgo.sum- source code
- docs
- Docker files
Ignored:
.envvendor/- binaries like
*.exe - local artifacts
This project is optimized for:
- fast local iteration
- Linux Docker runtime
- simple deployment flow
- easy integration with existing Rust backend
- connect real protobuf/gRPC contracts
- complete compatibility with Rust edge-api
- add integration tests
- harden auth/session flow
- production deployment profile
Silence in the transport. Precision in the gateway. Stability in the build.