{"adoption": {"forks": 632, "observed_at": "2026-08-28T04:04:13.905629+00:00", "stars": 1281}, "canonical_url": "https://ross.abutalabs.com/products/swagger2word", "card": {"archived": false, "artifact_type": "application", "description": "一个Swagger API 文档 转 Word 文档的工具项目", "domain": ["documentation", "apis", "developer-tools", "web-development"], "enriched": true, "function": ["documentation", "pdf", "templating", "http-server"], "health_score": 20, "homepage": null, "language": "Java", "license": "Apache-2.0", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["JMCuixy/swagger2word"], "name": "JMCuixy/swagger2word", "platform": ["jvm", "self-hosted"], "pushed_at": "2024-08-26T16:33:45+00:00", "repo": "JMCuixy/swagger2word", "stars": 1281, "tags": ["swagger", "openapi", "word-docx", "api-docs", "document-generation", "spring-boot", "web-server"], "topics": [], "urls": [], "use_cases": ["convert swagger  to word document", "generate api documentation in docx format", "export openapi spec as word file for offline sharing", "produce printable api reference docs for clients", "download swagger documentation as doc", "turn api spec into a deliverable document for non-developers"], "what_it_is": "A Java Spring Boot web application that converts Swagger/OpenAPI JSON specifications into downloadable Word documents. It accepts a Swagger JSON URL, an uploaded JSON file, or pasted JSON, renders it via Thymeleaf templates, and serves the generated .doc file.", "when_to_avoid": ["you need Markdown, PDF, or HTML output instead of Word", "you want docs generated automatically in CI from code annotations", "your API spec is not Swagger 2.0 JSON"], "when_to_choose": ["you need Word-format API documentation from an existing Swagger/OpenAPI JSON", "you want a simple self-hosted web UI rather than a CLI or build plugin", "your team or clients require docx deliverables for API specs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/swagger2word", "repo": "JMCuixy/swagger2word", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "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:04:13.905629+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:13.905629+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:58:16.893760+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "c63ad8e155bd79d3bf413ac8a5ad02869fd0c6e5f356dcc1a5675f4e9ce88a88", "fetched_at": "2026-08-28T04:04:13.905629+00:00", "kind": "readme", "missing": false, "url": "https://github.com/JMCuixy/swagger2word"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 3150, "days_push": 737, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}