{"id":20523137,"url":"https://github.com/mohdjishin/gw","last_synced_at":"2026-05-27T13:34:16.292Z","repository":{"id":230715998,"uuid":"767128981","full_name":"mohdjishin/gw","owner":"mohdjishin","description":"GW is a sample API gateway written in Golang using the Chi framework. It redirects routes to corresponding microservices or applications in a digitally signed manner.","archived":false,"fork":false,"pushed_at":"2024-03-31T10:35:38.000Z","size":4569,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-06T00:45:27.251Z","etag":null,"topics":["gateway-api","golang","microservice","reverse-proxy"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mohdjishin.png","metadata":{"files":{"readme":"Readme.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null}},"created_at":"2024-03-04T18:53:00.000Z","updated_at":"2024-03-31T10:44:42.000Z","dependencies_parsed_at":"2024-03-31T12:48:14.240Z","dependency_job_id":null,"html_url":"https://github.com/mohdjishin/gw","commit_stats":null,"previous_names":["mohdjishin/gw"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/mohdjishin/gw","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohdjishin%2Fgw","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohdjishin%2Fgw/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohdjishin%2Fgw/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohdjishin%2Fgw/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mohdjishin","download_url":"https://codeload.github.com/mohdjishin/gw/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mohdjishin%2Fgw/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27520585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-05T02:00:07.920Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["gateway-api","golang","microservice","reverse-proxy"],"created_at":"2024-11-15T22:38:05.788Z","updated_at":"2025-12-05T13:01:25.577Z","avatar_url":"https://github.com/mohdjishin.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\n# API Gateway Testing Guide\n\nThis README provides instructions on how to test the API Gateway. The gateway is designed to route requests to the appropriate services based on the request path. Before testing, ensure the gateway and all backend services are running.\n\n## Requirements\n\n- API Gateway running on port 8080\n- Backend services (e.g., UserService and ProductService) configured and running as per the gateway configuration\n\n## Running the API Gateway\n\nMake sure the API Gateway is running by executing the Go application:\n\n```shell\ngo run gw/main.go\n```\n\nThis starts the API Gateway on http://localhost:8080.\n\n## Testing User Service Routing\n\nIf the UserService is configured to be accessible through /UserService/*, use the following curl command to test routing to the UserService:\n\n```\ncurl http://localhost:8080/UserService/users\n```\n\nYou should receive a JSON response from the UserService, indicating that the API Gateway has successfully routed the request.\n\n## Testing Product Service Routing\n\nIf the ProductService is configured to be accessible through /ProductService/*, use the following curl command to test routing to the ProductService:\n\n```\ncurl http://localhost:8080/ProductService/products\n```\n\nYou should receive a JSON response from the ProductService, confirming that the API Gateway has successfully routed the request.\n\n## Using Docker Compose to Manage the Project\n\nDocker Compose allows you to manage multi-container Docker applications. To use Docker Compose to start and stop your project, follow these steps:\n\n### Starting the Project with Docker Compose\n\n1. **Ensure Docker Compose is installed**: Docker Compose should be installed on your system. For installation instructions, visit the [official Docker documentation](https://docs.docker.com/compose/install/).\n\n2. **Create a `docker-compose.yml` file**: This file should define your services, networks, and volumes. Place this file at the root of your project directory.\n\n3. **Start the services**: Navigate to the root of your project directory in a terminal and run the following command to start all services defined in your `docker-compose.yml` file:\n\n```shell\ndocker-compose up -d\n```\n\nThis command starts the services in detached mode, running them in the background.\n\n### Stopping the Project with Docker Compose\n\nTo stop and remove all the running services defined in the `docker-compose.yml` file, run:\n\n```shell\ndocker-compose down\n```\n\nThis command stops all running containers and removes containers, networks, volumes, and images created by `docker-compose up`.\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohdjishin%2Fgw","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmohdjishin%2Fgw","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmohdjishin%2Fgw/lists"}