{"id":20037239,"url":"https://github.com/sagarmaheshwary/microservices-api-gateway","last_synced_at":"2026-05-14T19:01:58.883Z","repository":{"id":233146449,"uuid":"784753404","full_name":"SagarMaheshwary/microservices-api-gateway","owner":"SagarMaheshwary","description":"REST-based gateway routing external traffic to gRPC microservices, serving as the single entry point to the platform.","archived":false,"fork":false,"pushed_at":"2025-08-09T19:10:31.000Z","size":109,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-08-09T21:07:51.742Z","etag":null,"topics":["api-gateway","docker","gin-gonic","golang","grpc","jaeger-tracing","microservices","opentelemetry","prometheus"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SagarMaheshwary.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2024-04-10T13:42:41.000Z","updated_at":"2025-08-09T19:10:34.000Z","dependencies_parsed_at":"2025-07-20T13:12:06.609Z","dependency_job_id":"259ac0bb-06d5-44e9-b2e1-2ccf6e3de2a2","html_url":"https://github.com/SagarMaheshwary/microservices-api-gateway","commit_stats":null,"previous_names":["sagarmaheshwary/microservices-api-gateway"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/SagarMaheshwary/microservices-api-gateway","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SagarMaheshwary%2Fmicroservices-api-gateway","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SagarMaheshwary%2Fmicroservices-api-gateway/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SagarMaheshwary%2Fmicroservices-api-gateway/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SagarMaheshwary%2Fmicroservices-api-gateway/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SagarMaheshwary","download_url":"https://codeload.github.com/SagarMaheshwary/microservices-api-gateway/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SagarMaheshwary%2Fmicroservices-api-gateway/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33039250,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"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":["api-gateway","docker","gin-gonic","golang","grpc","jaeger-tracing","microservices","opentelemetry","prometheus"],"created_at":"2024-11-13T10:18:44.430Z","updated_at":"2026-05-14T19:01:58.877Z","avatar_url":"https://github.com/SagarMaheshwary.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MICROSERVICES - API GATEWAY\n\nAPI Gateway for the [Microservices](https://github.com/SagarMaheshwary/microservices) project.\n\n### OVERVIEW\n\n- Golang\n- ZeroLog\n- Gin framework - REST API\n- gRPC – Client implementations for Authentication, Upload, and Video Catalog services\n- Prometheus Client – Exports default and custom metrics for Prometheus server monitoring\n- Jaeger – Distributed request tracing\n\n### SETUP\n\nFollow the instructions in the [README](https://github.com/SagarMaheshwary/microservices?tab=readme-ov-file#setup) of the main microservices repository to run this service along with others using Docker Compose or Kubernetes (KIND).\n\n### APIs\n\nCheck out the Postman collection and environment files in the **api/postman** directory for example requests.\n\n| API                          | METHOD | BODY                                                                                                                                                                                                               | Headers                                | Description                                                                                                                                          |\n| ---------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- |\n| /auth/register               | POST   | {\"name\": \"string\", \"email\": \"string\", \"password\", \"string\"}                                                                                                                                                        | -                                      | User registration - [authentication service](https://github.com/SagarMaheshwary/microservices-authentication-service)                                |\n| /auth/login                  | POST   | { \"email\": \"string\", \"password\", \"string\"}                                                                                                                                                                         | -                                      | User login - authentication service                                                                                                                  |\n| /auth/logout                 | POST   | -                                                                                                                                                                                                                  | Bearer token in \"authorization\" header | User logout - authentication service                                                                                                                 |\n| /auth/profile                | GET    | -                                                                                                                                                                                                                  | Bearer token in \"authorization\" header | Get currently logged in user - authentication service                                                                                                |\n| /videos                      | GET    | -                                                                                                                                                                                                                  | -                                      | List videos - [video catalog service](https://github.com/SagarMaheshwary/microservices-video-catalog-service)                                        |\n| /videos/:id                  | GET    | -                                                                                                                                                                                                                  | -                                      | Get specified video details as well as DASH manifest url from cloudfront for streaming that video - video catalog service                            |\n| /videos/upload/presigned-url | POST   | -                                                                                                                                                                                                                  | Bearer token in \"authorization\" header | Get S3 presigned url for uploading a video from frontend/postman - [upload service](https://github.com/SagarMaheshwary/microservices-upload-service) |\n| /videos/upload/webhook       | POST   | {\"video_id\": \"string - s3 upload id from presigned-url process\", \"thumbnail_id\": \"string - s3 upload id from presigned-url process\", \"title\": \"string - video title\", \"description\": \"string - video description\"} | Bearer token in \"authorization\" header | Create a video - upload service                                                                                                                      |\n| /health                      | GET    | -                                                                                                                                                                                                                  | -                                      | Service healthcheck endpoint                                                                                                                         |\n| /metrics                     | GET    | -                                                                                                                                                                                                                  | -                                      | Prometheus metrics endpoint                                                                                                                          |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsagarmaheshwary%2Fmicroservices-api-gateway","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsagarmaheshwary%2Fmicroservices-api-gateway","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsagarmaheshwary%2Fmicroservices-api-gateway/lists"}