中文字幕第五页-中文字幕第页-中文字幕韩国-中文字幕最新-国产尤物二区三区在线观看-国产尤物福利视频一区二区

基于ThinkPHP6的注解路由以及如何進(jìn)行自動(dòng)接口文檔和自動(dòng)測(cè)試數(shù)據(jù)的生成

本篇文章給大家分享的是有關(guān)基于ThinkPHP6 的注解路由以及如何進(jìn)行自動(dòng)接口文檔和自動(dòng)測(cè)試數(shù)據(jù)的生成,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

專(zhuān)注于為中小企業(yè)提供成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)西盟免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了近千家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

基于 ThinkPHP6 的注解路由 + 自動(dòng)接口文檔生成 + 自動(dòng)測(cè)試數(shù)據(jù)生成

使用

> 1、安裝

composer require iszsw/mock

> 2、添加測(cè)試代碼 在 app/controller 目錄下增加Test.php文件

<!--?php
namespace app\controller;

use app\BaseController;
use iszsw\mock\annotation\illustrate\AutoValidate;
use iszsw\mock\annotation\illustrate\Route;
use iszsw\mock\annotation\illustrate\Mock;
use iszsw\mock\annotation\illustrate\MockPack;
use iszsw\mock\annotation\illustrate\WikiItem;
use iszsw\mock\annotation\illustrate\WikiMenu;

/**
 * @WikiMenu("測(cè)試")
 * [@package](https://my.oschina.net/u/925486) app\controller
 * Author: zsw zswemail@qq.com
 */
class Test extends BaseController
{

    /**
     * @Route("test", method="GET")
     * @WikiItem("首頁(yè)", description="首頁(yè)詳情")
     *
     * @AutoValidate({"username":"require|chsAlpha"}, message={"username":"請(qǐng)輸入用戶(hù)名"})
     * @Mock("username", mode="request", title="用戶(hù)名", example="name")
     * @Mock("name", mode="response", title="名字", example="name", description="文章ID")
     */
    public function index($username){
        return "hello " . $username;
    }

    /**
     * @Route("mock", method="GET")
     * @WikiItem("詳情", description="文章詳情")
     *
     * @Mock("id", title="ID", example="numberBetween", description="文章ID")
     * @MockPack("articles", mode="response", title="文章列表", description="文章列表", limit=5)
     * @Mock("id", mode="response", title="ID", example="randomDigitNotNull", description="文章ID")
     * @Mock("title", mode="response", title="標(biāo)題", example="name")
     * @Mock("create_time", mode="response", title="創(chuàng)建時(shí)間", example={"date": {"Y-m-d", "now"}})
     * @Mock("content", mode="response", title="內(nèi)容", example={"sentence": 10})
     * @Mock("image", mode="response", title="圖片", example="randomDigit")
     * @MockPack("user", main=true, mode="response", title="用戶(hù)", description="發(fā)布者信息", limit=0)
     * @Mock("username", mode="response", title="用戶(hù)名", example="name")
     * @MockPack("user")
     * @MockPack("articles")
     * @Mock("page", mode="response", title="頁(yè)碼", example="randomDigitNotNull", description="當(dāng)前頁(yè)碼")
     */
    public function mock(){}
}

--> 3、 訪問(wèn)路由、測(cè)試數(shù)據(jù)、接口文檔

路由:/test?username=zsw

數(shù)據(jù):/mock?mock=1

文檔:/wiki

功能說(shuō)明

1、注解路由

> 路由注解 模型注解 自動(dòng)注入同Tp6官方注解

> 新增AutoValidate注解

@AutoValidate({"username":"require|chsAlpha"}, message={"username":"請(qǐng)輸入用戶(hù)名"})

2、接口測(cè)試數(shù)據(jù)生成

> MockPack 嵌套數(shù)據(jù)生成支持 無(wú)限級(jí)嵌套

@MockPack extends MockBase
    // 數(shù)據(jù)長(zhǎng)度 0表示單層數(shù)據(jù)
    @var int limit 
    
    /*
     * 置頂 (limit &gt; 1 時(shí)有效)
     * false:['fields'=&gt;[["a"=&gt;"b"], ["aa"=&gt;"bb"]]]
     * true:[["a"=&gt;"b"], ["aa"=&gt;"bb"]]
     */
    @var boolean main

例:

// MockPack(key)  MockPack中key相同值之間組成一層嵌套

/**
 * @MockPack("articles", mode="response", title="文章列表", description="文章列表", limit=3)
 *
 * @Mock("title", mode="response", title="標(biāo)題", example="name")
 * @Mock("content", mode="response", title="內(nèi)容", example={"sentence": 10})
 *
 * @MockPack("user", main=true, mode="response", title="用戶(hù)", description="發(fā)布者信息", limit=0)
 * @Mock("username", mode="response", title="用戶(hù)名", example="name")
 * @MockPack("user")
 * 
 * @MockPack("articles")
 */
 
生成結(jié)果

{
	"articles": [{
		"title": "喬陽(yáng)",
		"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": "谷致遠(yuǎn)"
		}
	}, {
		"title": "鄭文",
		"content": "Minus cum unde exercitationem sunt laudantium eveniet voluptatem magni ut cum non.",
		"user": {
			"username": "寧麗娟"
		}
	}]
}

> Mock 數(shù)據(jù)生成

@Mock extends MockBase
    /**
      * 自定義字符串 example="zsw"
      * Faker方法名 參考https://github.com/fzaninotto/Faker
      * 自定義方法名 \app\logic\Mock::name
      * example="方法名" || example={"方法名": {"參數(shù)1", "參數(shù)2"}}
      */
    @var string|array example

3、接口文檔生成

<!--?php
/**
 * @WikiMenu("測(cè)試")
 */
class Test extends BaseController
{
    /**
     * @Route("test", method="GET")
     * @WikiItem("首頁(yè)", description="首頁(yè)詳情")
     * @Mock("name", mode="response", title="名字", example="name", description="名字")
     */
    public function index(){
        return "zsw";
    }
}

使用參考

1、注解路由

2、接口測(cè)試數(shù)據(jù)生成

<?php
namespace app\controller;

use app\BaseController;
use iszsw\mock\annotation\illustrate\Route;
use iszsw\mock\annotation\illustrate\Mock;
use iszsw\mock\annotation\illustrate\MockPack;
use iszsw\mock\annotation\illustrate\WikiItem;
use iszsw\mock\annotation\illustrate\WikiMenu;

/**
 * @WikiMenu("測(cè)試")
 */
class Test extends BaseController
{
    /**
     * @Route("mock", method="GET")
     * @WikiItem("詳情", description="文章詳情")
     * @Mock("id", title="ID", example="numberBetween", description="文章ID")
     * 
     * @MockPack("articles", mode="response", title="文章列表", description="文章列表", limit=3)
     * @Mock("title", mode="response", title="標(biāo)題", example="name")
     * @Mock("content", mode="response", title="內(nèi)容", example={"sentence": 10})
     *
     * @MockPack("user", main=true, mode="response", title="用戶(hù)", description="發(fā)布者信息", limit=0)
     * @Mock("username", mode="response", title="用戶(hù)名", example="name")
     * @MockPack("user")
     * 
     * @MockPack("articles")
     */
    public function mock(){}
}

生成的數(shù)據(jù)格式為

{
	"articles": [{
		"title": "喬陽(yáng)",
		"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": "谷致遠(yuǎn)"
		}
	}, {
		"title": "鄭文",
		"content": "Minus cum unde exercitationem sunt laudantium eveniet voluptatem magni ut cum non.",
		"user": {
			"username": "寧麗娟"
		}
	}]
}

3、接口文檔生成

<?php
namespace app\controller;

use iszsw\mock\annotation\illustrate\Route;
use iszsw\mock\annotation\illustrate\WikiItem;
use iszsw\mock\annotation\illustrate\WikiMenu;

/**
 * @WikiMenu("測(cè)試")
 */
class Test
{

    /**
     * @Route("test", method="GET")
     * @WikiItem("首頁(yè)", description="首頁(yè)詳情")
     * @Mock("username", mode="request", title="用戶(hù)名", example="name")
     * @Mock("name", mode="response", title="名字", example={"\app\controller\Mock::name": {100}}, description="文章ID")
     */
    public function index($username){}
}

以上就是基于ThinkPHP6 的注解路由以及如何進(jìn)行自動(dòng)接口文檔和自動(dòng)測(cè)試數(shù)據(jù)的生成,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)站名稱(chēng):基于ThinkPHP6的注解路由以及如何進(jìn)行自動(dòng)接口文檔和自動(dòng)測(cè)試數(shù)據(jù)的生成
轉(zhuǎn)載注明:http://m.2m8n56k.cn/article42/jdcsec.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、建站公司、標(biāo)簽優(yōu)化、小程序開(kāi)發(fā)、網(wǎng)站內(nèi)鏈、面包屑導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化
主站蜘蛛池模板: 中国性猛交xxxxx免费看 | 欧美精品一级 | 国产成人精品免费视频大全软件 | 日韩欧美在线观看视频一区二区 | 亚洲精品一区二区手机在线 | 精品午夜一区二区三区在线观看 | 日韩国产成人精品视频 | 国产韩国精品一区二区三区久久 | 一级一级一片免费高清 | 男人天堂视频网站 | 精品国产高清毛片 | 在线久久 | 日韩在线观看视频网站 | 亚洲欧美国产日韩天堂在线视 | 免费国内精品久久久久影院 | 亚洲欧洲日产国码一级毛片 | 亚洲综合一区二区三区 | 久久精品国内一区二区三区 | 国产一级毛片夜一级毛片 | 国产一区二区福利久久 | 美女视频永久黄网站免费观看国产 | 日本黄页网站在线观看 | 成年人在线视频网站 | 2020国产成人免费视频 | 欧美亚洲国产日韩一区二区三区 | 亚洲精品福利一区二区三区 | 日韩不卡在线 | 日本免费二区三区久久 | 免费欧美一级片 | 欧美一区亚洲 | 日韩精品一区在线观看 | 亚洲欧美日韩成人一区在线 | 91香蕉成人免费网站 | 成人免费观看www在线 | 国产欧美成人xxx视频 | www.99精品 | 欧美成人 综合网播九公社 欧美成人26uuu欧美毛片 | 精品久久久久久久久久中文字幕 | 欧美一区二区在线 | 日韩性视频网站 | 在线欧美视频 |