• php + swagger2 +hyperf文档使用介绍


    @Api:用在请求的类上,表示对类的说明
        tags="说明该类的作用,可以在UI界面上看到的注解"
        value="该参数没什么意义,在UI界面上也看到,所以不需要配置"
    
    @ApiOperation:用在请求的方法上,说明方法的用途、作用
        value="说明方法的用途、作用"
        notes="方法的备注说明"
    
    @ApiImplicitParams:用在请求的方法上,表示一组参数说明
        @ApiImplicitParam:用在@ApiImplicitParams注解中,指定一个请求参数的各个方面
            name:参数名
            value:参数的汉字说明、解释
            required:参数是否必须传
            paramType:参数放在哪个地方
                · header --> 请求参数的获取:@RequestHeader
                · query --> 请求参数的获取:@RequestParam
                · path(用于restful接口)--> 请求参数的获取:@PathVariable
                · body(不常用)
                · form(不常用)    
            dataType:参数类型,默认String,其它值dataType="Integer"       
            defaultValue:参数的默认值
    
    @ApiResponses:用在请求的方法上,表示一组响应
        @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
            code:数字,例如400
            message:信息,例如"请求参数没填好"
            response:抛出异常的类
    
    @ApiModel:用于响应类上,表示一个返回响应数据的信息
                (这种一般用在post创建的时候,使用@RequestBody这样的场景,
                请求参数无法使用@ApiImplicitParam注解进行描述的时候)
        @ApiModelProperty:用在属性上,描述响应类的属性

    1、@Api:用在请求的类上,说明该类的作用

    @Api:用在请求的类上,说明该类的作用
        tags="说明该类的作用"
        value="该参数没什么意义,所以不需要配置"

    2、@ApiOperation:用在请求的方法上,说明方法的作用

    @ApiOperation:"用在请求的方法上,说明方法的作用"
        value="说明方法的作用"
        notes="方法的备注说明"
    @ApiOperation(value="用户注册",notes="手机号、密码都是必输项,年龄随边填,但必须是数字")  

    3、@ApiImplicitParams:用在请求的方法上,包含一组参数说明

    @ApiImplicitParams:用在请求的方法上,包含一组参数说明
        @ApiImplicitParam:用在 @ApiImplicitParams 注解中,指定一个请求参数的配置信息       
            name:参数名
            value:参数的汉字说明、解释
            required:参数是否必须传
            paramType:参数放在哪个地方
                · header --> 请求参数的获取:@RequestHeader
                · query --> 请求参数的获取:@RequestParam
                · path(用于restful接口)--> 请求参数的获取:@PathVariable
                · body(不常用)
                · form(不常用)    
            dataType:参数类型,默认String,其它值dataType="Integer"       
            defaultValue:参数的默认值
    示例
    
    @ApiImplicitParams({
        @ApiImplicitParam(name="mobile",value="手机号",required=true,paramType="form"),
        @ApiImplicitParam(name="password",value="密码",required=true,paramType="form"),
        @ApiImplicitParam(name="age",value="年龄",required=true,paramType="form",dataType="Integer")
    })

    4、@ApiResponses:用于请求的方法上,表示一组响应

    @ApiResponses:用于请求的方法上,表示一组响应
        @ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
            code:数字,例如400
            message:信息,例如"请求参数没填好"
            response:抛出异常的类
    示例
    
    @ApiOperation(value = "select1请求",notes = "多个参数,多种的查询参数类型")
    @ApiResponses({
        @ApiResponse(code=400,message="请求参数没填好"),
        @ApiResponse(code=404,message="请求路径没有或页面跳转路径不对")
    })

    5、@ApiModel:用于响应类上,表示一个返回响应数据的信息

    @ApiModel:用于响应类上,表示一个返回响应数据的信息
                (这种一般用在post创建的时候,使用@RequestBody这样的场景,
                请求参数无法使用@ApiImplicitParam注解进行描述的时候)
        @ApiModelProperty:用在属性上,描述响应类的属性

     示例

    <?php
    
    declare(strict_types=1);
    
    namespace AppControllerApi;
    
    use AppConstantsErpConstants;
    use AppControllerAbstractController;
    use AppExtendHelperErpHelper;
    use AppExtendHelperHelper;
    use MzhSwaggerAnnotationApiController;
    use MzhSwaggerAnnotationApiResponse;
    use MzhSwaggerAnnotationFormData;
    use MzhSwaggerAnnotationPostApi;
    
    /**
     * Class LoginController
     * @package AppControllerErp
     *
     * ################### API DOC ###########################
     * @ApiController(tag="登录", description="token登录接口")
     */
    class LoginController extends AbstractController
    {
        /**
         * token登录接口(用于其它项目校验权限以及登录)
         * @return array|PsrHttpMessageResponseInterface
         *
         * #########################API文档##############################
         * @PostApi(description="token登录接口")
         * @FormData(key="token|登录token", rule="required|max:264")
         * @ApiResponse(code="600", description="失败",schema={"code":"600","msg":"失败"})
         * @ApiResponse(code="200", description="成功", schema={
         *   "code": 200,
         *   "msg": "success",
         *   "data": {
         *       "author_id|用户ID": 3090995,
         *       "fd_sta_id|员工ID": 425,
         *       "fd_sta_name|员工姓名": "大苏打",
         *       "permission|权限数组": {
         *       "Dgdata_Other_Iframe_chartUser|权限地址->真实URL": "http://dgdata.orgg/erp/chart/user",
         *       }
         *   }
         * })
         */
        public function tokenLogin()
        {
            $token = Helper::getJwtToken();
            if (!$token) return apiError('参数异常');
            $adminUser = ErpHelper::parseJwtToken($token);
            //缓存用户权限信息
            $cacheKey   = ErpConstants::PERMISSION_CACHE_PREFIX . $adminUser['fd_sta_id'];
            $permission = cache()->get($cacheKey);
            return apiSuccess([
                'author_id' => $adminUser['author_id'],
                'fd_sta_id'   => $adminUser['fd_sta_id'],
                'fd_sta_name' => $adminUser['fd_sta_name'],
                'permission'  => $permission,
            ]);
        }
    }
     

    您的资助是我最大的动力!
    金额随意,欢迎来赏!

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我

    如果,想给予我更多的鼓励,求打

    因为,我的写作热情也离不开您的肯定支持,感谢您的阅读!

  • 相关阅读:
    Python 虚拟环境(VirtualEnv)
    python 枚举
    Python 面向对象编程
    Python 使用模块
    Python 函数
    Python dict & set
    JAVA-工具类
    09-12 练习题
    JAVA-数组
    java-语句
  • 原文地址:https://www.cnblogs.com/GreenForestQuan/p/13674468.html
Copyright © 2020-2023  润新知