PHP
PHP 8 attributes 驱动的 API 文档
在 Laravel、ThinkPHP、Hyperf、Webman、Yii2、Yii3 中写 PHP 8 attributes,自动生成可浏览、可调试、可导出的接口文档。
- PHP 8 attributes
- 6 个框架适配
- definitions / ref / children
- 在线调试、Mock、JSON/TS
composer require erikwang2013/apidoc-phpApidoc 把接口文档从手写 Markdown 变成代码旁的声明。PHP 版使用 PHP 8 attributes,Go 版使用类型化结构体,Rust 版使用过程宏;三者共享同一套文档模型、在线调试与静态前端。
PHP 版源自 HGthecode/apidoc-php(hg/apidoc);Go、Rust 与 apidoc-ui 由 erikwang2013 维护。每种语言保留自己的安装与接入方式,文档体验保持一致。
从声明到交付,三种语言走同一条文档流水线。
同一套文档工作流,不同的注解机制、框架适配与构建时机。每种语言都有独立的使用指南。
PHP 8 attributes 驱动的 API 文档
在 Laravel、ThinkPHP、Hyperf、Webman、Yii2、Yii3 中写 PHP 8 attributes,自动生成可浏览、可调试、可导出的接口文档。
composer require erikwang2013/apidoc-php类型化结构体随路由注册
接口文档以类型化结构体随路由注册,内嵌 Web UI 提供浏览与在线调试;兼容 net/http、Gin、Echo、Chi、Fiber、beego、Kratos、go-zero。
go get github.com/erikwang2013/apidoc-go过程宏在编译期生成文档
用过程宏在 handler 上声明文档,编译期静态注册,运行期零成本聚合;兼容 axum 与 actix-web,内置鉴权、Mock、导出、分享与代码生成。
apidoc-rust = "2.0"Vue 3 + TypeScript 的文档加载与展示页面,支持应用/版本、在线调试、接口分享、Swagger 导出、缓存管理与多语言。构建产物为纯静态文件。
三套后端共用的静态文档前端 · Vue 3.5 · Vite 6 · Pinia · Monaco
npm ci && npm run build不需要迁移技术栈。用你现有的语言声明路由与文档,Apidoc 负责生成、调试与交付。
use erikwang2013\apidoc\annotation as Apidoc;
#[Apidoc\Title("Get user")]
#[Apidoc\Method("GET")]
#[Apidoc\Url("/users/{id}")]
#[Apidoc\RouteParam(
name: "id", type: "int"
)]
#[Apidoc\Returned(
name: "name", type: "string"
)]
public function show(int $id) { }
s.Register(apidoc.Route{
Method: "GET",
URL: "/users/:id",
Handler: getUser,
Doc: apidoc.Doc{
Title: "Get user",
Params: []apidoc.Param{
{Name: "id", In: "path",
Type: "int", Required: true},
},
Responses: []apidoc.Response{
{Name: "name", Type: "string"},
},
},
})
#[apidoc::title("Get user")]
#[apidoc::method("GET")]
#[apidoc::url("/users/{id}")]
#[apidoc::route_param(
name = "id", ty = "int", required
)]
#[apidoc::returned(
name = "name", ty = "string"
)]
async fn get_user() {}
从在线调试到鉴权、导出与共享 UI,核心工作流一致;具体能力以各语言指南为准。
在文档页直接请求真实接口,支持全局参数、Mock 预填与请求前后事件。三种语言的文档都提供调试面板。
字段级 Mock 示例。PHP 支持规则表达式,Go 按类型生成,Rust 提供 15 条 fake 规则。
nickname"erik"email"fake:email"id1024一套文档管理多个应用与版本,按应用树切换;接口归属与访问密码可以独立配置。
全局密码与应用独立密码;文档缓存、ETag/304 与常量时间比较,兼顾速度与安全。
password******JSON、TypeScript、Markdown、Swagger/OpenAPI 等格式按语言提供;请求与响应可直接交给前端和测试。
PHP 与 Rust 提供配置/模板驱动的代码生成;Go 侧重文档导出与注释解析。
apidoc-ui 同时服务 PHP、Go、Rust 后端;Vue 3 + TypeScript,构建产物为纯静态文件。
HMAC 令牌、CORS 白名单、路径与标识符校验;把文档服务当作生产接口来保护。
HMAC-SHA256CORS声明、浏览、调试、导出、部署沿同一条路径完成,三种语言共享这套工作流。
在代码旁写注解
文档自动生成
在线请求与 Mock
JSON / TS / Swagger
每种语言都包含安装、规则、完整示例、典型场景与排错。先选你的技术栈,再按章节深入。
在 Laravel、ThinkPHP、Hyperf、Webman、Yii2、Yii3 中写 PHP 8 attributes,自动生成可浏览、可调试、可导出的接口文档。
接口文档以类型化结构体随路由注册,内嵌 Web UI 提供浏览与在线调试;兼容 net/http、Gin、Echo、Chi、Fiber、beego、Kratos、go-zero。
用过程宏在 handler 上声明文档,编译期静态注册,运行期零成本聚合;兼容 axum 与 actix-web,内置鉴权、Mock、导出、分享与代码生成。
Vue 3 + TypeScript 的文档加载与展示页面,支持应用/版本、在线调试、接口分享、Swagger 导出、缓存管理与多语言。构建产物为纯静态文件。
PHP 6 个、Go 8 个、Rust 2 个;同一套文档模型,不同的薄适配层。
下面是各语言的最小安装命令;框架接入、配置与完整示例在对应指南中。
composer require erikwang2013/apidoc-phpgo get github.com/erikwang2013/apidoc-goapidoc-rust = "2.0"npm ci && npm run build每种指南都从最小可运行示例开始,再展开注解规则、场景与排错。
版本日志与完整变更以各仓库 Releases 为准。
它是一页会走路的文档。每个表情都是独立 SVG,自带动效,并遵循 prefers-reduced-motion。
:emoji-smile::emoji-joy::emoji-cry::emoji-depressed::emoji-terrified::emoji-angry::emoji-coquettish::emoji-cute::emoji-pleasing::emoji-knocking::emoji-facepalm::emoji-tongue:项目宠物与表情属于项目视觉资产,版权归作者所有,商业使用需取得授权。详见 ASSETS-LICENSE.md。 ASSETS-LICENSE.md.