{"adoption": {"forks": 666, "observed_at": "2026-08-28T04:07:29.013768+00:00", "stars": 2903}, "canonical_url": "https://ross.abutalabs.com/products/doclever", "card": {"archived": false, "artifact_type": "application", "description": "做最好的接口管理平台", "domain": ["apis", "developer-tools", "web-development", "testing", "documentation", "self-hosted"], "enriched": true, "function": ["api-framework", "http-server", "mock-api", "testing", "e2e-testing", "documentation", "developer-tools", "web-framework"], "health_score": 56, "homepage": "http://doclever.cn", "language": "JavaScript", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["mrwill84/DOClever"], "name": "mrwill84/DOClever", "platform": ["self-hosted", "cross-platform"], "pushed_at": "2025-12-27T06:38:17+00:00", "repo": "mrwill84/DOClever", "stars": 2903, "tags": ["api-management", "api-testing", "mock-server", "swagger-import", "postman-import", "team-collaboration", "vue", "mongodb", "interface-management", "chinese", "nodejs", "web-server", "docker"], "topics": ["api", "javascript", "nodejs", "vue", "webpack", "element-ui", "element", "express", "mongodb", "web"], "urls": [], "use_cases": ["manage and document REST APIs for a team", "mock API responses during frontend development", "run automated API test suites with scheduled email reports", "import existing Postman or Swagger collections", "self-host an API platform on an internal network", "generate API documentation from real request data", "collaborate on API projects with role-based team permissions"], "what_it_is": "DOClever is a free, open-source API management platform for small and medium teams, offering interface editing, debugging, mock serving, automated testing, and team collaboration. It is self-hostable on intranets, built with Node.js, Express, MongoDB, and Vue, and supports importing from Postman, RAP, and Swagger.", "when_to_avoid": ["you need a maintained project with an explicit license and active community", "you want a modern SaaS API platform with cloud features", "you require WebSocket or gRPC API management today", "you need strong security hardening out of the box"], "when_to_choose": ["you need a free, self-hosted API management and mock server", "your team wants integrated API docs, testing, and versioning in one tool", "you must keep API data on an intranet for security", "you are migrating from Postman, RAP, or Swagger"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/doclever", "repo": "mrwill84/DOClever", "role": "main", "score": 49}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "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:07:29.013768+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:29.013768+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:35:07.365277+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "5e596b06444788bf6e235b6571eb25d3f7e93b9235d689b9f5b38e4f99c66e30", "fetched_at": "2026-08-28T04:07:29.013768+00:00", "kind": "readme", "missing": false, "url": "https://github.com/mrwill84/DOClever"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 59, "longevity": 100, "rhythm": 8}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3470, "days_push": 249, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 49, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}