五月天激情丁香,国产精品2019,国产成人精品亚洲2020,国产精品免费视频一区二区三区,开心久久婷婷综合中文字幕,天堂视频在线观看免费完整版

Action 注解

控制器類 action 注解指的是可以在控制器類中 action 方法中聲明使用的注解標簽,包括 ApiParamExtendParam 三個注解標簽。用于實現對傳遞到 action 方法的參數的約束邏輯判斷及注解文檔的生成。

Api

標記當前的 actionapi

注解字段說明

apiName

該字段用于說明當前 api 在注解文檔中展示的標題名稱。

allowMethod

該字段用于限制當前 api 允許請求的請求方法,可配置的值可查看枚舉類 \EasySwoole\HttpAnnotation\Enum\HttpMethod ,不配置時默認為 [HttpMethod::GET,HttpMethod::POST]。開發者可能會對部分接口限制只能允許 GET 方法請求,這時就可以配置這個字段來限制請求方法。

requestPath

該字段用于說明請求當前 api,可注冊到 fast-route,也作為注解文檔中的 api 請求路徑。

注意:如果不把 Api 注解中的 requestPath 注入到 EasySwoole 框架的 Router ,這個字段僅能作為注解文檔聲明,沒有其他作用,并不會使用該字段的值作為路由提供訪問,客戶端實際請求時也是執行 EasySwoole 框架的默認解析。關于如何將 requestPath 注入到 EasySwoole 框架的 Router 請看下文說明。

requestParam

該字段用于定義當前 api action 方法客戶端需要傳遞的參數及限制約束規則,該字段接收一個 Param 對象數組。實現對傳遞的參數進行校驗。使用示例如:

<?php

namespace App\HttpController;

use EasySwoole\HttpAnnotation\Attributes\Api;
use EasySwoole\HttpAnnotation\Attributes\Description;
use EasySwoole\HttpAnnotation\Attributes\Param;
use EasySwoole\HttpAnnotation\Enum\HttpMethod;
use EasySwoole\HttpAnnotation\Enum\ParamFrom;
use EasySwoole\HttpAnnotation\Validator\Optional;

class Index extends Base
{
    #[Api(
        apiName: "home",
        allowMethod: HttpMethod::GET,
        requestPath: "/test/index",
        requestParam: [
            new Param(
                name: "account",
                from: ParamFrom::GET,
                validate: [
                    new Optional()
                ],
                value: 1,
                description: new Description("翻頁參數")
            )
        ],
    )]
    function index(string $account)
    {
        $this->writeJson(200, null, "account is {$account}");
    }
}

responseParam

該字段主要用于自動生成文檔時,響應參數的描述說明。

requestExamples

該字段主要用于自動生成文檔時,請求參數示例的描述說明。

responseExamples

該字段主要用于自動生成文檔時,響應參數示例的描述說明。

description

該字段主要用于自動生成文檔時,api 的描述說明。

Api 注解的 requestPath 注入路由

修改 App\HttpController\Router.php 類文件,在 initialize 方法中添加 \EasySwoole\HttpAnnotation\Utility::mappingRouter($routeCollector, __DIR__); 即可。

<?php

namespace App\HttpController;

use EasySwoole\Http\AbstractInterface\AbstractRouter;
use EasySwoole\HttpAnnotation\Utility;
use FastRoute\RouteCollector;

class Router extends AbstractRouter
{
    function initialize(RouteCollector $routeCollector)
    {
        // 將所有 `Api` 注解的 `requestPath` 注入路由
        Utility::mappingRouter($routeCollector, __DIR__);
    }
}

這樣就可以把所有 Api 注解中的 requestPath 注入到 fast-route,具體用法查看 動態路由 章節。

使用示例

<?php

namespace App\HttpController;

use EasySwoole\HttpAnnotation\Attributes\Api;
use EasySwoole\HttpAnnotation\Attributes\Description;
use EasySwoole\HttpAnnotation\Attributes\Param;
use EasySwoole\HttpAnnotation\Document\Document;
use EasySwoole\HttpAnnotation\Enum\HttpMethod;
use EasySwoole\HttpAnnotation\Enum\ParamFrom;
use EasySwoole\HttpAnnotation\Validator\Integer;
use EasySwoole\HttpAnnotation\Validator\IsUrl;
use EasySwoole\HttpAnnotation\Validator\MaxLength;
use EasySwoole\HttpAnnotation\Validator\Min;
use EasySwoole\HttpAnnotation\Validator\MinLength;
use EasySwoole\HttpAnnotation\Validator\Optional;
use EasySwoole\HttpAnnotation\Validator\OptionalIfParamMiss;
use EasySwoole\HttpAnnotation\Validator\OptionalIfParamSet;
use EasySwoole\HttpAnnotation\Validator\Required;

class Index extends Base
{
    #[Api(
        apiName: "home",
        allowMethod: HttpMethod::GET,
        requestPath: "/test/index.html",
        requestParam: [
            new Param(
                name: "account",
                from: ParamFrom::GET,
                validate: [
                    new Optional()
                ],
                value: 1,
                description: new Description("翻頁參數")
            )
        ],
        description: new Description(__DIR__ . '/../../res/description.md', Description::MARKDOWN_FILE)
    )]
    public function index(string $account)
    {
        $this->writeJson(200, null, "account is {$account}");
    }

    #[Api(
        apiName: "hello",
        allowMethod: [HttpMethod::POST, HttpMethod::GET],
        requestPath: "/test/hello.html",
        requestParam: [
            new Param(name: "account", from: ParamFrom::GET, validate: [
                new Required(),
                new MaxLength(maxLen: 15),
            ], description: new Description("用戶登錄的賬戶Id,這個參數一定要有啊"))
        ],
        description: new Description("這是一個接口說明啊啊啊啊")
    )]
    public function hello(string $account)
    {
        $this->writeJson(200, null, "account is {$account}");
    }

    public function doc()
    {
        $path      = __DIR__;
        $namespace = 'App\HttpController';
        $doc       = new Document($path, $namespace);
        $this->response()->write($doc->scanToHtml());
    }

    #[Api(
        apiName: 'url',
        requestParam: [
            new Param(
                name: "url",
                validate: [
                    new IsUrl()
                ]
            )
        ]
    )]
    public function url()
    {

    }

    #[Api(
        apiName: 'optionalSet',
        requestParam: [
            new Param(
                name: "a",
                validate: [
                    new OptionalIfParamSet("b"),
                    new MinLength("5")
                ]
            ),
            new Param(
                name: "b",
                validate: [
                    new OptionalIfParamSet("a"),
                    new Integer(),
                    new Min(1)
                ]
            )
        ]
    )]
    public function optionalSet()
    {

    }

    #[Api(
        apiName: 'optionalMiss',
        requestParam: [
            new Param(
                name: "a",
                validate: [
                    new Optional(),
                    new MinLength("5")
                ],
            ),
            new Param(
                name: "b",
                validate: [
                    new OptionalIfParamMiss("a"),
                    new Integer(),
                    new Min(1)
                ]
            )
        ]
    )]
    public function optionalMiss()
    {

    }
}

Param

Param 注解的字段說明已經在 控制器類注解 章節進行了說明。這里就不再詳細說明。 這里提到 Param 的使用,是其在 action 方法中的使用說明。

注意:Param 注解在 action 中使用時,不能既在 Api 注解的 requestParam 字段中使用 Param 注解,又在 action 方法上單獨聲明 Param 注解,這樣做時會導致后者失效。所以推薦要么在 Api 注解的 requestParam 字段中使用 Param 注解,要么在不使用 Api 注解的情況下直接單獨使用 Param 注解,后者這種就不能把定義的 requestPath 注入路由,而是執行 EasySwoole 框架默認的路由解析模式。

錯誤示例:

<?php
namespace App\HttpController;

use EasySwoole\HttpAnnotation\Attributes\Api;
use EasySwoole\HttpAnnotation\Attributes\Param;
use EasySwoole\HttpAnnotation\Validator\MinLength;
use EasySwoole\HttpAnnotation\Validator\Optional;

class User extends Base
{
    #[Api(
        apiName: 'optionalMiss',
        requestParam: [
            new Param(
                name: "a",
                validate: [
                    new Optional(),
                    new MinLength(5)
                ],
            )
        ]
    )]
    #[Param(
        name: "b",
        validate: [
            new Optional(),
            new MinLength(5)
        ],
    )]
    public function optionalMiss()
    {

    }
}

上述 optionalMiss actionParam 注解的參數 b 會被忽略,既不會被驗證,也不會注入參數傳參。

正確示例:

<?php
namespace App\HttpController;

use EasySwoole\HttpAnnotation\Attributes\Api;
use EasySwoole\HttpAnnotation\Attributes\Param;
use EasySwoole\HttpAnnotation\Validator\MinLength;
use EasySwoole\HttpAnnotation\Validator\Optional;

class User extends Base
{
    #[Api(
        apiName: 'optionalMiss',
        requestParam: [
            new Param(
                name: "a",
                validate: [
                    new Optional(),
                    new MinLength(5)
                ],
            ),
            new Param(
                name: "b",
                validate: [
                    new Optional(),
                    new MinLength(5)
                ],
            )
        ]
    )]
    public function optionalMiss()
    {

    }
}

使用示例

<?php

namespace App\HttpController\Api;

use EasySwoole\HttpAnnotation\Attributes\Api;
use EasySwoole\HttpAnnotation\Attributes\ApiGroup;
use EasySwoole\HttpAnnotation\Attributes\Description;
use EasySwoole\HttpAnnotation\Attributes\Example;
use EasySwoole\HttpAnnotation\Attributes\Param;
use EasySwoole\HttpAnnotation\Enum\HttpMethod;
use EasySwoole\HttpAnnotation\Enum\ParamFrom;
use EasySwoole\HttpAnnotation\Enum\ParamType;
use EasySwoole\HttpAnnotation\Validator\MaxLength;
use EasySwoole\HttpAnnotation\Validator\Required;

#[ApiGroup(
    groupName: "Api.Auth", description: new Description(__DIR__ . '/../../../res/description.md', Description::MARKDOWN_FILE)
)]
class Auth extends ApiBase
{
    #[Api(
        apiName: "login",
        allowMethod: HttpMethod::GET,
        requestPath: "/auth/login.html",
        requestParam: [
            new Param(name: "account", from: ParamFrom::GET, validate: [
                new Required(),
                new MaxLength(maxLen: 15),
            ], description: new Description("用戶登錄的賬戶Id")),
            new Param(name: "password", from: ParamFrom::GET, validate: [
                new Required(),
                new MaxLength(maxLen: 15),
            ], description: new Description("密碼")),
            new Param(name: "verify", from: ParamFrom::JSON,
                description: new Description("驗證碼"),
                type: ParamType::OBJECT,
                subObject: [
                    new Param(name: "code", from: ParamFrom::JSON, validate: [
                        new Required(),
                        new MaxLength(maxLen: 15),
                    ], description: "防偽編號"),
                    new Param(name: "phone", from: ParamFrom::JSON, description: "手機號")
                ])
        ],
        responseParam: [
            new Param(
                name: "code", type: ParamType::STRING
            ),
            new Param(
                name: "Result",
                type: ParamType::LIST,
                subObject: [
                    new Param("token"),
                    new Param("expire")
                ]
            ),
            new Param("msg")
        ],
        requestExamples: [
            new Example(
                [
                    new Param(name: "account", value: "1111", description: "賬號"),
                    new Param(name: "password", value: "1111", description: "密碼"),
                    new Param(name: "verify", value: "1111", description: new Description('驗證碼')),
                ]
            ),
            new Example(
                new Description(__DIR__ . '/../../../res/json.json', Description::JSON_FILE)
            ),
            new Example(
                new Description(__DIR__ . '/../../../res/xml.xml', Description::XML_FILE)
            ),
        ],
        responseExamples: [
            new Example(
                [
                    new Param(name: "result", description: "結果", subObject: [
                        new Param(name: "id", value: 1, description: "用戶Id"),
                        new Param(name: "name", value: "八九", description: "昵稱")
                    ]),
                    new Param(name: "code", value: "200", description: "狀態碼"),
                ]
            ),
            new Example(
                [
                    new Param(name: "result", value: "fail", description: "結果"),
                    new Param(name: "code", value: "500", description: "狀態碼"),
                ]
            ),
            new Example(
                new Description(__DIR__ . '/../../../res/json.json', Description::JSON_FILE)
            ),
            new Example(
                new Description(__DIR__ . '/../../../res/xml.xml', Description::XML_FILE)
            ),
        ],
        description: new Description("這是一個接口說明")
    )]
    public function login()
    {

    }
}

ExtendParam

用于子類控制器類在重寫父類控制類的 action 方法時限制約束傳入子類控制器類的 action 方法參數。且 ExtendParam 注解只能在 action 中使用一次。

使用示例

Base 類,父類有一個 add action,限制必填參數 param1param2

<?php
namespace App\HttpController;

use EasySwoole\HttpAnnotation\AnnotationController;
use EasySwoole\HttpAnnotation\Attributes\Param;
use EasySwoole\HttpAnnotation\Exception\Annotation;
use EasySwoole\HttpAnnotation\Exception\ValidateFail;
use EasySwoole\HttpAnnotation\Validator\Required;

class Base extends AnnotationController
{
    #[Param(
        name: "param3",
        validate: [
            new Required()
        ]
    )]
    #[Param(
        name: "param4",
        validate: [
            new Required()
        ]
    )]
    public function add()
    {

    }

    protected function onException(\Throwable $throwable): void
    {
        if ($throwable instanceof ValidateFail) {
            $this->writeJson(400, null, $throwable->getMessage());
        } else {
            if ($throwable instanceof Annotation) {
                $this->writeJson(400, null, $throwable->getMessage());
            } else {
                throw $throwable;
            }
        }
    }
}

Index 類,子類控制器,重寫父類 Baseadd action,聲明 ExtendParam 注解指定要約束的參數,所以 add action 由于受到父類參數約束,所以必填參數 param1param2

<?php
namespace App\HttpController;

use EasySwoole\HttpAnnotation\Attributes\ExtendParam;

class Index extends Base
{
    #[ExtendParam(parentParams: ['param1', 'param2'])]
    public function add()
    {

    }
}
主站蜘蛛池模板: 免费黄色国产视频 | 久久精品国产亚洲精品2020 | 无人区码一码二码w358cc | 91.久久| 精品一区二区三区波多野结衣 | 精品区一区二区三区 | 久久大 | 一级a性色生活片久久毛片 一级a性色生活片久久毛片明星 | 西野翔之公侵犯中文字幕 | 五月综合激情 | 一级草逼片 | 卧室激情呻吟黄暴h文 | 欧美性受xxxx黑人xyx性爽 | 人人澡人人透人人爽 | 欧美亚洲久久 | 精品无码一区二区三区在线 | 久久人人爽人人爽人人片av不 | 久久久久久久久久久久中文字幕 | 中文在线а天堂中文在线新版 | 日韩精品久久久久久免费 | japanese丰满少妇最高潮 | 亚洲国产欧美一区二区三区丁香婷 | 久久久久国产精品人妻aⅴ毛片 | 美女赤身免费网站 | 色啪综合| 中文字幕在线视频观看 | www青青操| 亚洲a在线播放 | 黄色小说在线观看视频 | 另类小说五月天 | 久久久视屏 | 欧美一级淫片免费视频黄 | 有奶水的迷人少妇 | 荡女乱翁床第高h | 国产精品久久久久久av福利 | 在线观看国产福利 | 桃色成人 | 少妇太紧太爽又黄又硬又爽视频 | 国产无套粉嫩白浆内精品 | 免费av影视| 中文字幕制服狠久久日韩二区 | 国产精品精品久久久久久甜蜜软件 | 91精品乱码久久蜜桃 | av永久天堂一区二区三区 | 亚洲精品一区二区三区99 | 人人做人人爽 | 欧美精品一区二区在线观看 | 欧美无砖区 | 6080毛片| 免费av影视 | 天堂网久久 | 呦系列视频一区二区三区 | 精品国产一区二区三区四区在线看 | 大地资源在线观看官网第三页 | 亚洲欧美日韩人成在线播放 | jizz免费视频 | 韩国欧美三级 | 日本不卡在线观看 | 国产午夜精品一区二区三区四区 | 97伦伦午夜电影理伦片 | 国产日韩欧美视频免费看 | 无码人妻精品一区二区蜜桃网站 | 国产免费极品av吧在线观看 | 在线看片成人 | 成人极品 | 久久人人爽av亚洲精品天堂 | 亚洲国产成人久久精品软件 | 中文久久久 | 国产成人av影院 | 想看一级黄色片 | 夜夜夜久久久 | 亚洲精品高清国产一久久 | 西西人体www大胆高清 | 亚洲午夜久久久久久久久电影网 | 91ts人妖另类精品系列 | 亚洲欧美精品伊人久久 | 久久涩| 一级国产国产一级 | 日产电影一区二区三区 | 人体写真 福利视频 | 日本www一道久久久免费榴莲 | 美女视频黄免费看 | 精品深夜av无码一区二区老年 | 黄色影片在线看 | 99插插插 | 国产视频91在线 | 日本裸体xx少妇18在线 | 国产精品999在线观看 | 野外做受又硬又粗又大视幕 | 好屌爽在线视频 | 免费色网站 | 毛片基地在线观看 | 日本高清免费视频 | 狼人社区91国产精品 | 亚洲国产精品久久久久秋霞不卡 | 国产区小视频 | 欧美一区二区三区网站 | 91视在线国内在线播放酒店 | 久久久久成人精品 | 国产综合网站 | 国产真实交换配乱淫视频 | 午夜无码免费福利视频网址 | 免费午夜视频在线观看 | 免费国产黄线在线观看 | 成年人在线播放视频 | 夜夜爽日日澡人人添蜜臀 | 国产伦精品一区二区三区男技 | 日韩精品一区中文字幕 | 99精品国产99久久久久久97 | 青草视频在线 | 久久超碰av | 精精国产xxxx视频在线 | 韩国三级hd两男一女 | 国产做受69 | 欧美孕妇变态重口另类 | 中文字幕无码乱码人妻系列蜜桃 | 亚洲综合视频一区 | 国产特级毛片aaaaaa高清 | 乡村乱淫 | 亚洲爱婷婷色婷婷五月 | 午夜爱爱网站 | 少妇无码一区二区三区 | 特级全黄久久久久久久久 | 在线 | 一区二区三区 | 国产激情小视频 | 成人乱人乱一区二区三区 | 精品无码一区二区三区爱欲九九 | 中国性xxx| 亚洲国产精品久久久天堂不卡 | 国产特级毛片aaaaaa高清 | 男人天堂v | www爱色avcom| 男女啪啪做爰高潮无遮挡 | 久久久久久久久久久久久久 | 国产免费一区二区三区香蕉精 | 日韩伊人网 | 在线观看色网 | 四虎院影亚洲永久 | 欧美一级片a | 欧美日韩中文国产一区 | 日本三级久久 | 成人羞羞国产免费游戏 | 中国人与牲禽动交精品 | 国产视频亚洲精品 | 天天5g天天爽免费观看 | 欧美怡春院一区二区三区 | 少妇太爽了在线观看 | 亚洲无线观看国产精品 | 国产丝袜一区视频在线观看 | 免费在线视频你懂的 | 伊人射 | 好紧好爽再进去一点在线视频 | 女人18岁毛片 | brazzers猛女系列 | 亚洲激情免费视频 | 日韩av免费一区 | 在线观看福利网站 | 欧美在线| 国产成年无码v片在线 | 香蕉综合视频 | 九九综合九色综合网站 | 久久久亚洲国产精品麻豆综合天堂 | 国产一级片免费看 | 日本人的性生活视频 | 色欧美亚洲 | 国产不卡一区二区视频 | 麻豆 美女 丝袜 人妻 中文 | 性欧美极品 | 色一情一乱一伦 | 日本国产乱弄免费视频 | 国产精品后入内射日本在线观看 | 成年人看的免费视频 | 啪啪一级片 | 欧美精品成人一区二区三区四区 | 成人香蕉网 | mm131美女视频 | 免费视频爱爱太爽了激情 | 精品视频成人 | 色婷婷美国农夫综合激情亚洲 | 欧美黑丝少妇 | 性久久久久久久久久 | 国产在线观看免费视频今夜 | 国产女主播视频一区二区三区 | 久久一日本道色综合久久 | 欧美综合影院 | 欧美乱大交xxxxx疯狂俱乐部 | 麻豆av一区二区三区久久 | 欧美牲交a欧美牲交aⅴ一 | 国产精品欧美福利久久 | 三级三级久久三级久久18 | 九色视频偷拍少妇的秘密 | 欧美日韩在线免费观看 | 国产三级a三级三级 | 国产做爰xxx18在线观看网站 | 日本少妇ⅹxxxxx视频 | 一级持黄录像免费观看 | 性猛交xxxx乱大交孕妇2十 | 最近中文字幕免费视频 | 天堂网www在线 | 性生交大片免费全毛片 | 艳妇乳肉豪妇荡乳av | 久久国产加勒比精品无码 | 综合久久影院 | 九九精品九九 | 国产精品久久久久久久久福交 | 我把护士日出水了视频90分钟 | 热re99久久精品国99热线看 | 亚洲精品久久区二区三区蜜桃臀 | 女警一级淫片免费放 | 精品国产一区二区三区久久影院 | 日本丰满肉感bbwbbwbbw | 国产成人无码a区精油按摩 蜜桃久久精品成人无码av | 又黄又爽又色视频 | 97久久久| 射一射 | 亚洲国产一区二区三区在线观看 | 亚洲综合资源 | 羞羞的网站在线观看 | 97久久人人| 美女扣逼喷水视频 | 国产综合在线播放 | 日韩免费高清大片在线 | 国产精品午夜一区 | 亚洲青春草 | 小镇姑娘国语版在线观看免费 | 免费看欧美中韩毛片影院 | 真人与拘做受免费视频一 | www白浆 | 国产亚洲精品第一综合麻豆 | 98色花堂永久在线网站 | 日日不卡av | 欧美国产日韩久久 | 欧美黄色免费观看 | 国产精品国产三级国产专播精品人 | 色狠狠av一区二区三区香蕉蜜桃 | 亚洲天堂在线观看视频 | 免费成人深夜夜国外 | 精品二区在线 | 欧洲av在线免费观看 | 在线精品福利 | 久久精品水蜜桃av综合天堂 | 久久久久成人精品无码 | 国产爆乳无码av在线播放 | 男女啪啪做爰高潮免费网站 | 亚州成人| 日韩av免费片 | 白晶晶果冻传媒国产今日推荐 | 巨胸美女狂喷奶水www | 污片在线免费看 | 91av在| 激情超碰 | 美女一级黄 | 一区二区在线免费视频 | 中文字幕在线视频一区 | 国产在线视频一区二区三区 | 久久久久久久一区 | 国产手机在线精品 | 久久波多野 | 久久国产免费 | 免费激情网站 | 男人的天堂av网站 | 亚洲aaaaaa特级| 欧美日韩少妇精品 | 久久永久免费 | 在线xxxxx | 国产对白乱刺激福利视频 | 国产在线观看无码免费视频 | 国产精品国产三级国快看 | 久久久久久久久艹 | 亚洲成av人不卡无码影片 | 少妇高潮一区二区三区99女老板 | 天干天干天啪啪夜爽爽av小说 | av在线手机版 | 日韩av片在线免费观看 | 亚洲精品日韩欧美 | 无码帝国www无码专区色综合 | 香蕉97视频观看在线观看 | 亚洲成av人片天堂网无码 | 激情伊人网| 无码专区无码专区视频网址 | 日本免费一区视频 | 久久精品爱 | av亚洲产国偷v产偷v自拍软件 | 肥臀浪妇太爽了快点再快点 | 性猛交xxxxx按摩中国 | 国产精品久免费的黄网站 | 午夜91视频 | 国产l精品国产亚洲区在线观看 | 污视频在线观看网址 | 超碰一级片 | 久久久久人| 性欧美成人播放77777 | 久久久涩 | 免费观看全黄做爰大片小说 | 中文字幕一区二区三区乱码在线 | 国产午夜网站 | 久久夜精 | 一起草av在线 | 我和岳m愉情xxxx国产91 | 色视频www在线播放国产人成 | 久久露脸国产精品 | 国产成人精品一区二区三区福利 | 国产成人夜色高潮福利影视 | 九色porny丨国产首页在线 | 自拍偷拍小视频 | 国产在线短视频 | 午夜视频网址 | 红桃成人少妇网站 | 日本大奶视频 | 高潮白浆女日韩av免费看 | 欧洲精品久久久 | 国精产品一区一区三区有限公司杨 | 亚洲精品久久久久久一区二区 | 亚洲精品第一国产综合野 | 超碰在| 色狠久久av北条麻妃081 | 久久综合狠狠 | 国产精品视频在线播放 | 亚洲精品欧美日韩 | 精品久久久久久乱码天堂 | 国产欧美一区二区精品久导航 | 怡红院a∨人人爰人人爽 | 国产有码aaaae毛片视频 | 欧美视频网站中文字幕 | 亚洲aaa级 | 1区2区3区在线观看 2015www永久免费观看播放 | 日日碰狠狠躁久久躁综合网 | 99成人在线观看 | 黄色一级黄色片 | 亚洲伊人成无码综合网 | 婷婷综合网站 | 婷婷天天 | аⅴ资源中文在线天堂 | 美女一二区 | 国产精品久久一区性色av图片 | 亚洲成av人片在线观看香蕉 | 亚洲天堂资源 | 久久久经典 | 少妇做爰α片免费视频网站 | 轻点好疼好大好爽视频 | 国产做爰视频免费播放 | 久久久天堂国产精品女人 | 色中色成人导航 | 国产日韩欧美亚洲精品中字 | 日韩视频在线观看一区二区 | 老司机午夜福利视频 | 天堂中文在线8最新版精品版软件 | 色呦呦在线观看视频 | 国产精品第60页 | 久久天堂精品 | 先锋影音播放不卡资源 | 午夜肉伦伦影院九七影网 | 国产精品一区在线免费观看 | 亚洲区日韩精品中文字幕 | 好吊精品 | 放荡的美妇在线播放 | 91精品情国产情侣高潮对白文档 | 狠狠躁夜夜躁人人爽蜜桃 | 99在线精品免费视频九九视 | 性做久久久久久久久久 | 国产乱码精品一区二区三区四川人 | 4438x亚洲最大 | 五月婷婷在线观看视频 | 成人毛片100部| 欧美一区二区三区啪啪 | 国产福利在线视频观看 | 国产两女互慰高潮视频在线观看 | 又爽又黄无遮挡高潮视频网站 | 一个色综合亚洲色综合 | 久久99热婷婷精品一区 | 日韩成人精品一区二区 | 国产欧美日韩视频在线观看 | 韩日在线视频 | 成人永久视频 | 自拍偷拍视频网站 | 日韩精品在线观看一区 | 日本一本高清 | 特级做a爰片毛片免费看108 | 亚洲永久精品ww47 | 午夜国产福利在线 | 国产精品无码专区av在线播放 | 最新天堂资源在线 | 99久久婷婷国产综合精品青草免费 | 丰满白嫩尤物一区二区 | 日本女优在线看 | 国产真实乱人偷精品视频 | 粉嫩av一区二区三区四区在线观看 | 国产精品美女久久久久av爽李琼 | 亚洲人精品亚洲人成在线 | 欧美粗又长| 亚洲视频自拍偷拍 | 一个人免费观看视频www中文 | 久久免费视频一区二区 | 一级片久久久久 | 牛牛在线免费视频 | 中文字幕乱码一区av久久不卡 | 涩久久| 国产又大又粗又爽 | 自拍偷拍第1页 | 伊人成人在线 | 无毛av | 日本黄色一级网站 | 国产精品乱码高清在线观看 | 欧美人xxxx| 伊人影音 | 精品少妇人妻av一区二区 | 男女操操视频 | 日韩精品h| 中文在线好最新版在线 | 日韩在线免费视频观看 | 最新亚洲人成网站在线观看 | 99久久久精品国产一区二区 | 一卡二卡三卡在线观看 | 久久艹影院 | 香蕉国产在线视频 | 亚洲一区二区三区成人网站 | 欧美美女性视频 | 亚洲日韩乱码中文无码蜜桃臀 | 麻豆91精品91久久久的优点 | 夜夜躁很很躁日日躁麻豆 | 午夜精品久久久久久久喷水 | 福利cosplayh裸体の福利 | 亚洲第一大综合区 | 日本欧美大码a在线观看 | 国产精品偷乱一区二区三区 | 国产精品第108页 | 小黄网站在线观看 | 91精品国产综合久久香蕉最新版 | 一区二区三区无码高清视频 | 久青草国产在视频在线观看 | 欧美久久久久 | 国产极品在线播放 | 日韩特黄一级欧美毛片特黄 | 亚洲男人的天堂在线视频 | 国产一级片视频 | 小辣椒福利视频导航 | 91欧美日韩| 好吊色这里只有精品 | 正在播放欧美 | 欧美皮鞭调教wwwcom | 校园春色综合 | 24小时日本在线www免费的 | 国产日韩视频在线 | 99老色批| 主人~别揉了~尿了~小说 | 强行挺进皇后紧窄湿润小说 | 午夜成人亚洲理伦片在线观看 | 亚洲精品久久久久avwww潮水 | 91视频久久 | 亚洲性啪啪无码av天堂 | 少妇人妻一级a毛片 | 成人欧美一区二区三区在线观看 | 51成人网| 国产性猛交xx乱视频 | 国产激情无码一区二区三区 | 奶头挺立呻吟高潮视频 | 久久久久无码国产精品一区 | 中文字幕乱码无码人妻系列蜜桃 | 久久国产精品精品 | 五月婷婷丁香综合 | 国产精品女人精品久久久天天 | 成人免费视 | 日韩欧美一级黄色片 | 国内成人在线 | 午夜xxxxx | 国产免费视屏 | 女人a级毛片| 亚洲精品久久久久玩吗 | 无码中文字幕日韩专区 | 欧美久久一区二区 | 色婷婷香蕉在线一区 | 888夜夜爽夜夜躁精品 | 日韩av成人免费看 | 黄色大尺度视频 | 欧美精品毛片 | com国产| 亚洲精品久久久久午夜福禁果tⅴ | 99国产精品久久久久久久久久 | 在线日韩一区 | 色婷婷一区二区三区四区成人网 | 欧美另类色 | 国产精品一久久香蕉国产线看观看 | 天天射一射 | 国产v欧美v日本v精品按摩 | 3d动漫精品啪啪一区二区 | 一区二区三区欧美精品 | 国产自在现线2019 | 免费又黄又粗又爽大片69 | 成人免费无码大片a毛片 | 日本无遮羞调教惩罚网站 | 日本无遮羞教调屁股视频网站 | 国产裸拍裸体视频在线观看 | 亚洲 自拍 另类小说综合图区 | 成年人小视频 | 亚洲国产精久久久久久久 | 亚洲精品喷潮一区二区三区 | 毛片aaaaaa| 偷窥少妇高潮呻吟av久久免费 | 中文乱码字慕人妻熟女人妻 | 麻豆蜜桃av蜜臀av色欲av | 国产专区视频 | 51精品国产人成在线观看 | 日韩精品在线不卡 | 成人丁香婷婷 | 91嫩草国产露脸精品国产 | 又白又嫩毛又多15p 国产热の有码热の无码视频 | 国产精品高潮呻吟久久aⅴ码 | 日韩一级视频在线 | 中文字幕在线观看第一页 | 欧美精品一区在线播放 | 亚洲 日韩 欧美 成人 在线观看 | 欧美色图在线视频 | 在线免费看黄色片 | 久久亚洲精品中文字幕冲田杏梨 | 天天操天天操天天射 | 一个人看的毛片 | 亚洲裸男自慰gv网站 | 妺妺窝人体色www聚色窝仙踪 | 九九综合 | 欧美经典影片视频中文 | 亚洲7777| 日本无遮挡边做边爱边摸 | 国产女人久久精品视 | 丰满少妇aaaaaa爰片毛片 | 日本免费黄色小视频 | 国产精品系列视频 | 国产成人精品在线播放 | 欧美激情视频在线观看 | 99久久一区 | 免费午夜爽爽爽www视频十八禁 | 丰满熟妇人妻中文字幕 | 女人真人毛片全免费看 | 国产精品一区二区久久精品爱微奶 | а√天堂资源官网在线资源 | 日本aa大片 | 欧美永久视频 | 懂色av一区二区三区四区 | 一个人在线观看免费视频www | 综合色在线观看 | 绫濑遥av | 欧美老肥妇做.爰bbww视频 | 国产日韩一区二区三免费高清 | 精品深夜av无码一区二区老年 | 一本久道久久综合婷婷五月 | 午夜福利一区二区三区在线观看 | 在线观看免费av网 | 国产婷婷色综合av蜜臀av | 欧洲vodafone精品性 | 欧美大波乳人伦免费视频 | 欧洲精品视频在线 | 久久亚洲欧美 | 久久久中文字幕日本无吗 | 成人短视频在线免费观看 | 欧美性折磨bdsm激情另类视频 | 俞飞鸿早期三级 | 国产精品久久久久久久久久免费看 | 香蕉午夜福利院 | 三级网站视频 | 黄色毛片毛茸茸 | 懂色av一区二区在线播放 | 国产精品视频一区二区在线观看 | 免费欧美一区 | 亚洲乱亚洲乱妇50p 亚洲va中文字幕无码久久不卡 | 午夜一二三 | 精品国偷自产在线 | 茄子视频国产在线观看 | 欧美日韩精品免费 | 黄色av免费 | 国产在线视频导航 | 午夜影院在线视频 | 国产精品极品白嫩 | 欧美天天射 | 男人的天堂在线视频 | 亚洲砖区区免费 | 久久99精品久久久久久久青青日本 | xxx黄色片| 色成人免费网站 | 大肉大捧一进一出好爽视频动漫 | 亚洲国产午夜精品理论片妓女 | 电车侵犯高潮失禁在线看 | 成+人+黄+色有声+小说免费 | 黑人性生活视频 | 一本久久知道综合久久 | 六月色丁 | 久草网视频在线观看 | 超乳hitomi在线播放痴汉 | 激情综| 日本黄色一极片 | 55夜色66夜色国产精品视频 | 射进来av影视网 | 日本网站在线看 | 白石茉莉奈一区二区av | 国内精品久久久久影院薰衣草 | 人妻少妇精品久久久久久 | 国产精品对白久久久久粗 | 久本草在线中文字幕亚洲 | 天天综合国产 | 性欧美大战久久久久久久 | 色播网址 | 国产成人免费9x9x | 亚洲狠狠丁香婷婷综合久久久 | 毛片中文字幕 | 国产精品夜色一区二区三区 | 精品日产卡一卡二卡麻豆 | 丰满少妇理论片在线观看 | av免费网站观看 | 精品国产免费一区二区三区香蕉 | 少妇性做爰xxxⅹ性视频 | 亚洲天堂成人在线观看 | 国产精品久久久久永久免费看 | 午夜xxx | 久久精品欧美日韩 | 国产精品久久久免费 | 国产免费一级 | 久久久久久久久久久久久女国产乱 |