Skip to content
官方QQ交流群
技术交流1:87208295   点此加入
技术交流2:787747122   点此加入
官网
云控制台
开放平台
关注微信公众号
代码仓库: 码云

路由注解方式定义

简要

  • 关键词
注解类型支持<类>支持<方法>支持<重复>类型说明
RouteFlag类型接口标识
RouteRestful类型restful风格
RouteGroup类型group分组
RouteMiddleware类型中间件
RouteHeader类型header
RouteGet类型get、options
RoutePost类型post、options
RoutePut类型put、options
RoutePatch类型patch、options
RouteDelete类型delete、options
RouteRule类型get、post、delete、put、patch、head、options

常规案例

  • RouteGroup + RouteGet 拼接路由,注解注册
  • RouteGroup + RoutePost 拼接路由,注解注册
  • RouteGroup + RoutePut 拼接路由,注解注册
  • RouteGroup + RoutePatch 拼接路由,注解注册
  • RouteGroup + RouteDelte 拼接路由,注解注册
  • RouteGroup + RouteRule 拼接路由,注解注册
php
<?php

namespace addons\comA\moduleA\controller;

// 路由分组
#[RouteGroup('/comA.modulesA/v1-api/zoos')]
// 路由中间件
#[RouteMiddleware(\app\middleware\AaaaMiddle::class)]
#[RouteMiddleware(\app\middleware\BbbbMiddle::class)]
#[RouteMiddleware(\app\middleware\CcccMiddle::class)]
// 或者
#[RouteMiddleware([
    \app\middleware\AaaaMiddle::class
    \app\middleware\BbbbMiddle::class,
    \app\middleware\CcccMiddle::class,
])]
class TestApi 
{
    // (该注释不用写)自动注册为* /xxx/api/xxx
    #[RouteRule('xxx')]
    public function testRule(){}

    // (该注释不用写)自动注册为 GET /v1-api/zoos/<id>
    #[RouteGet('<id>')]
    public function getById(int $id = 0){}

    // (该注释不用写)自动注册为 GET /v1-api/zoos/
    #[RouteGet('')]
    public function getData(){}

    // (该注释不用写)自动注册为 POST /v1-api/zoos/
    #[RoutePost('')]
    public function postData(){}

    // (该注释不用写)自动注册为 PUT /v1-api/zoos/<id>
    #[RoutePut('<id>')]
    public function putById(int $id = 0){}

    // (该注释不用写)自动注册为 PATCH /v1-api/zoos/<id>
    #[RoutePatch('<id>')]
    public function patchById(int $id = 0){}

    // (该注释不用写)自动注册为 DELETE /v1-api/zoos/<id>
    #[RouteDelete('<id>')]
    public function deleteById(int $id = 0){}

    // (该注释不用写)自动注册为 POST /v1-api/zoos/
    #[RouteDelete('')]
    public function deleteData($id = null){}
}
<?php

namespace addons\comA\moduleA\controller;

// 路由分组
#[RouteGroup('/comA.modulesA/v1-api/zoos')]
// 路由中间件
#[RouteMiddleware(\app\middleware\AaaaMiddle::class)]
#[RouteMiddleware(\app\middleware\BbbbMiddle::class)]
#[RouteMiddleware(\app\middleware\CcccMiddle::class)]
// 或者
#[RouteMiddleware([
    \app\middleware\AaaaMiddle::class
    \app\middleware\BbbbMiddle::class,
    \app\middleware\CcccMiddle::class,
])]
class TestApi 
{
    // (该注释不用写)自动注册为* /xxx/api/xxx
    #[RouteRule('xxx')]
    public function testRule(){}

    // (该注释不用写)自动注册为 GET /v1-api/zoos/<id>
    #[RouteGet('<id>')]
    public function getById(int $id = 0){}

    // (该注释不用写)自动注册为 GET /v1-api/zoos/
    #[RouteGet('')]
    public function getData(){}

    // (该注释不用写)自动注册为 POST /v1-api/zoos/
    #[RoutePost('')]
    public function postData(){}

    // (该注释不用写)自动注册为 PUT /v1-api/zoos/<id>
    #[RoutePut('<id>')]
    public function putById(int $id = 0){}

    // (该注释不用写)自动注册为 PATCH /v1-api/zoos/<id>
    #[RoutePatch('<id>')]
    public function patchById(int $id = 0){}

    // (该注释不用写)自动注册为 DELETE /v1-api/zoos/<id>
    #[RouteDelete('<id>')]
    public function deleteById(int $id = 0){}

    // (该注释不用写)自动注册为 POST /v1-api/zoos/
    #[RouteDelete('')]
    public function deleteData($id = null){}
}

RouteRestful风格案例

请求method接口路由 url对应controller方法说明
GET/zoosgetData列出所有动物园
GET/zoos/IDgetById获取某个指定动物园的信息
POST/zoospostData新建一个动物园
POST/zoos/IDpostById更新一个动物园
PUT/zoos/IDputById更新某个指定动物园的信息(提供该动物园的全部信息)
PATCH/zoos/IDpatchById更新某个指定动物园的信息(提供该动物园的部分信息)
DELETE/zoos/IDdeleteById删除某个动物园
DELETE/zoosdeleteData删除所有动物园
  • restful 风格注册,增删改查无需注解,注解服务会自动生成
php
<?php

namespace addons\comA\moduleA\controller;

// restful 风格
#[RouteRestful('/comA.modulesA/v1-api/zoos')]
// 路由中间件
#[RouteMiddleware(\app\middleware\AaaaMiddle::class)]
#[RouteMiddleware(\app\middleware\BbbbMiddle::class)]
#[RouteMiddleware(\app\middleware\CcccMiddle::class)]
// 或者
#[RouteMiddleware([
    \app\middleware\AaaaMiddle::class
    \app\middleware\BbbbMiddle::class,
    \app\middleware\CcccMiddle::class,
])]
class TestApi 
{
    // (该注释不用写)自动注册为 GET /v1-api/zoos/<id>
    public function getById(int $id = 0){}

    // (该注释不用写)自动注册为 GET /v1-api/zoos
    public function getData(){}

    // (该注释不用写)自动注册为 POST /v1-api/zoos
    public function postData(){}

    // (该注释不用写)自动注册为 PUT /v1-api/zoos/<id>
    public function putById(int $id = 0){}

    // (该注释不用写)自动注册为 PATCH /v1-api/zoos/<id>
    public function patchById(int $id = 0){}

    // (该注释不用写)自动注册为 DELETE /v1-api/zoos/<id>
    public function deleteById(int $id = 0){}

    // (该注释不用写)自动注册为 DELETE /v1-api/zoos    
    public function deleteData(){}
}
<?php

namespace addons\comA\moduleA\controller;

// restful 风格
#[RouteRestful('/comA.modulesA/v1-api/zoos')]
// 路由中间件
#[RouteMiddleware(\app\middleware\AaaaMiddle::class)]
#[RouteMiddleware(\app\middleware\BbbbMiddle::class)]
#[RouteMiddleware(\app\middleware\CcccMiddle::class)]
// 或者
#[RouteMiddleware([
    \app\middleware\AaaaMiddle::class
    \app\middleware\BbbbMiddle::class,
    \app\middleware\CcccMiddle::class,
])]
class TestApi 
{
    // (该注释不用写)自动注册为 GET /v1-api/zoos/<id>
    public function getById(int $id = 0){}

    // (该注释不用写)自动注册为 GET /v1-api/zoos
    public function getData(){}

    // (该注释不用写)自动注册为 POST /v1-api/zoos
    public function postData(){}

    // (该注释不用写)自动注册为 PUT /v1-api/zoos/<id>
    public function putById(int $id = 0){}

    // (该注释不用写)自动注册为 PATCH /v1-api/zoos/<id>
    public function patchById(int $id = 0){}

    // (该注释不用写)自动注册为 DELETE /v1-api/zoos/<id>
    public function deleteById(int $id = 0){}

    // (该注释不用写)自动注册为 DELETE /v1-api/zoos    
    public function deleteData(){}
}

特殊用法

php
#[RouteGroup('/order_sys/business/act_wancheng')]
class OrderActions{
    // 订单 - 完成
    #[RoutePut(path: 'act_wancheng/<id>', pattern: ["id" => "\d+"], append: [
        'handleType' => 'EveOrdersFinish'
    ])]
    public function putById(int $id = 0){ }
}
#[RouteGroup('/order_sys/business/act_wancheng')]
class OrderActions{
    // 订单 - 完成
    #[RoutePut(path: 'act_wancheng/<id>', pattern: ["id" => "\d+"], append: [
        'handleType' => 'EveOrdersFinish'
    ])]
    public function putById(int $id = 0){ }
}

Copyright © 2017 10yun.com | 十云提供计算服务-IPV6 | ctocode组开发