{"adoption": {"forks": 1123, "observed_at": "2026-08-28T04:09:33.907686+00:00", "stars": 5975}, "canonical_url": "https://ross.abutalabs.com/products/go-gin-api", "card": {"archived": false, "artifact_type": "framework", "description": "基于 Gin 进行模块化设计的 API 框架，封装了常用功能，使用简单，致力于进行快速的业务研发。比如，支持 cors 跨域、jwt 签名验证、zap 日志收集、panic 异常捕获、trace 链路追踪、prometheus 监控指标、swagger 文档生成、viper 配置文件解析、gorm 数据库组件、gormgen 代码生成工具、graphql 查询语言、errno 统一定义错误码、gRPC 的使用、cron 定时任务 等等。", "domain": ["web-development", "backend", "apis", "developer-tools"], "enriched": true, "function": ["web-framework", "api-framework", "logging", "monitoring", "tracing", "rate-limiting", "orm", "websocket", "graphql", "scheduling", "middleware", "documentation"], "health_score": 20, "homepage": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5", "language": "Go", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["xinliangnote/go-gin-api"], "name": "xinliangnote/go-gin-api", "platform": ["go", "cross-platform"], "pushed_at": "2023-12-23T00:57:01+00:00", "repo": "xinliangnote/go-gin-api", "stars": 5975, "tags": ["gin", "boilerplate", "api-scaffold", "chinese-documentation", "code-generation", "swagger", "jwt", "viper", "zap", "gorm", "prometheus", "web-server"], "topics": ["golang", "go", "api-gin", "gin", "gin-api", "jaeger", "pprof", "gorm", "trace", "graphql", "prometheus", "swagger", "zap", "viper", "jwt", "cron"], "urls": [], "use_cases": ["scaffold a production-style REST API in Go", "build a Gin-based backend with JWT auth and CORS", "add Prometheus metrics and tracing to a Go API", "generate CRUD code and controllers from database tables", "learn how to structure a modular Gin project", "run scheduled jobs configurable from a web admin panel"], "what_it_is": "A modular API framework built on the Gin web framework for Go, bundling common features like CORS, JWT auth, zap logging, Prometheus metrics, Swagger docs, GORM, GraphQL, and cron scheduling. It also includes an admin web UI and code generators to speed up business API development.", "when_to_avoid": ["you need a minimal or highly customized architecture", "you require long-term guaranteed maintenance for production (README advises caution for production use)", "you prefer assembling your own middleware stack"], "when_to_choose": ["starting a new Go REST API and wanting batteries-included conventions", "teams that want enforced project structure and unified error codes", "learning resource for integrating Gin with common middleware"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/go-gin-api", "repo": "xinliangnote/go-gin-api", "role": "main", "score": 23}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:09:33.907686+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:21:27.663029+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "2b66b610dbf80bb3ff3c6ff67f28dfc31753e36aab42021ae993e09ca9bfb440", "fetched_at": "2026-08-28T04:09:33.907686+00:00", "kind": "readme", "missing": false, "url": "https://github.com/xinliangnote/go-gin-api"}, {"content_hash": "77105db54b97548c3a1a9c5f4640309cd05f78541bedbddd3a9a5a6694d4ab59", "fetched_at": "2026-08-29T08:46:01.096950+00:00", "kind": "homepage", "missing": false, "url": "https://www.yuque.com/xinliangnote/go-gin-api/ngc3x5"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 2567, "days_push": 985, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 23, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}