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:⽤在请求的⽅法上,说明⽅法的作⽤
iframe参数传递
@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 App\Controller\Api;
use App\Constants\ErpConstants;
use App\Controller\AbstractController;
use App\Extend\Helper\ErpHelper;
use App\Extend\Helper\Helper;
use Mzh\Swagger\Annotation\ApiController;
use Mzh\Swagger\Annotation\ApiResponse;
use Mzh\Swagger\Annotation\FormData;
use Mzh\Swagger\Annotation\PostApi;
/**
* Class LoginController
* @package App\Controller\Erp
*
* >>>#### API DOC >>>>>##
* @ApiController(tag="登录", description="token登录接⼝")
*/
class LoginController extends AbstractController
{
/**
* token登录接⼝(⽤于其它项⽬校验权限以及登录)
* @return array|\Psr\Http\Message\ResponseInterface
*
* >>>>>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": "/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,
]);
}
}

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论