千家信息网

基于ThinkPHP6 的注解路由以及如何进行自动接口文档和自动测试数据的生成

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章给大家分享的是有关基于ThinkPHP6 的注解路由以及如何进行自动接口文档和自动测试数据的生成,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编
千家信息网最后更新 2026年11月01日基于ThinkPHP6 的注解路由以及如何进行自动接口文档和自动测试数据的生成

本篇文章给大家分享的是有关基于ThinkPHP6 的注解路由以及如何进行自动接口文档和自动测试数据的生成,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

基于 ThinkPHP6 的注解路由 + 自动接口文档生成 + 自动测试数据生成

使用

> 1、安装

composer require iszsw/mock

> 2、添加测试代码 在 app/controller 目录下增加Test.php文件

 3、 访问路由、测试数据、接口文档

路由:/test?username=zsw数据:/mock?mock=1文档:/wiki

功能说明

1、注解路由

> 路由注解 模型注解 自动注入同Tp6官方注解

> 新增AutoValidate注解

@AutoValidate({"username":"require|chsAlpha"}, message={"username":"请输入用户名"})

2、接口测试数据生成

> MockPack 嵌套数据生成支持 无限级嵌套

@MockPack extends MockBase    // 数据长度 0表示单层数据    @var int limit         /*     * 置顶 (limit > 1 时有效)     * false:['fields'=>[["a"=>"b"], ["aa"=>"bb"]]]     * true:[["a"=>"b"], ["aa"=>"bb"]]     */    @var boolean main

例:

// MockPack(key)  MockPack中key相同值之间组成一层嵌套/** * @MockPack("articles", mode="response", title="文章列表", description="文章列表", limit=3) * * @Mock("title", mode="response", title="标题", example="name") * @Mock("content", mode="response", title="内容", example={"sentence": 10}) * * @MockPack("user", main=true, mode="response", title="用户", description="发布者信息", limit=0) * @Mock("username", mode="response", title="用户名", example="name") * @MockPack("user") *  * @MockPack("articles") */ 生成结果{        "articles": [{                "title": "乔阳",                "content": "Vero impedit et consequatur quasi doloribus dolores illum sit expedita doloremque fugiat esse deleniti quisquam.",                "user": {                        "username": "方建明"                }        }, {                "title": "蒙桂花",                "content": "Iure explicabo officiis minima et impedit sunt dignissimos necessitatibus ratione animi nam aperiam dolorum.",                "user": {                        "username": "谷致远"                }        }, {                "title": "郑文",                "content": "Minus cum unde exercitationem sunt laudantium eveniet voluptatem magni ut cum non.",                "user": {                        "username": "宁丽娟"                }        }]}

> Mock 数据生成

@Mock extends MockBase    /**      * 自定义字符串 example="zsw"      * Faker方法名 参考https://github.com/fzaninotto/Faker      * 自定义方法名 \app\logic\Mock::name      * example="方法名" || example={"方法名": {"参数1", "参数2"}}      */    @var string|array example

3、接口文档生成


      
    
0