leebai/hyperf-esaydoc

this is hyperf annotation document generate package

1.0.3 2021-04-30 05:37 UTC

This package is not auto-updated.

Last update: 2023-09-15 17:32:28 UTC


README

Documentation

doc地址:https://gitee.com/bai8li/esay-doc

EsayDoc文档使用

1.生成api接口文档列表,和服务文档列表

2.配合mzh/validate 验证器可自动根据验证规则、场景生成文档所需参数

3.无需手动编写doc文档一键生成导出postman,eolinker等文档

1.开始使用

安装文档
composer require leebai/hyperf-esaydoc  
 
发布配置文件
php bin/hyperf.php vendor:publish leebai/hyperf-esaydoc

默开启文档web访问,如需关闭,在 config/autoload/doc.php 将enable设为false

2.主要注解说明

Api :标注api接口说明
Service :服务接口
Responses :返回参数
Params :入参属性,输出字段

3.访问生成的文档


访问 http://youdDomain/doc

4文档详情概述

所有配置请到config/autoload/doc.php修改,已标注好

4.1 api列表功能

1.自动生成登录配置,即可以保存token到postman模拟登录的真实场景

2.自动根据接口是否需要登录添加token到header头进行鉴权

3.根据是否是列表自动添加currantPage(当前页),row(每页条数)

4.自动根据请求方法生成query,或者form-data 参数体,并根据默认值填入对应的值,可直接进行请求

4.2 服务列表功能

1.生成服务对应的入参,返回值列表对应的参数

2.根据是否是列表自动添加currantPage(当前页),row(每页条数)

5注解参数详解

...

/**
 * @AutoController
 * @Api(name="测试管理" ,needLogin=false)
 */
class TestController
{
    /**
     *
     * @ApiOperation(name="测试登录",d›esc="这是一个测试登录的接口",needLogin=true,method="GET")
     * @Params(type="1" ,params={
     *     @Param(name="userName",type="string",desc="用户名",required=true,default="254497767"),
     * })
     * @Responses(isList=false,data={
     *      @Param(name="userName",type="string",desc="用户名",required=true,default="254497767")},
     *      failStatus={@FailResponse(status="2",message="普通错误")})
     */
    public function index()
    {
    ...

Api标注在类上面描述该类是属于什么模块
name如:用户模块,商品模块描述该模块功能的名字
needLogintrue/false描述该模块是否需要登录
示例: @Api(name="测试管理" ,needLogin=false)

ApiOperation标注在方法上描述方法具体操作
name如:登录,注册描述该接口功能的名字
desc如:后台管理员登录,新用户前台注册描述该接口功能的详情描述
methodGET/POST/PUT/DELETE描述该模块请求方法,如与hyperf冲突,hyperf优先
needLogintrue/false描述该接口是否需要登录,与Api冲突,此处优先

示例: @ApiOperation(name="测试登录",d›esc="这是一个测试登录的接口",needLogin=true,method="GET")

Service标注在类上面描述该接口是属于什么服务模块
name如:用户模块服务,商品模块服务描述该服务模块功能的名字
`

示例: @Service(name="用户服务模块")


---

ServiceOpeation|标注在服务接口的方法上|描述方法具体操作
---|--|---
name| 如:添加用户,编辑用户信息 |该服务接口的名字
desc| 如:后台管理员添加用户,后台编辑用户信息 |服务接口的详情描述

示例: @ServiceOpeation(name="添加用户",desc="添加管理员用户")


---

Params|标注在方法上|描述该方法参数体
---|--|---
type| 请求参数(0,默认)/响应参数(1)/header头(2) |描述该参数体的类型
params|  |所有参数Param的数组集合

示例: @Params(params={

 *     @Param(name="userName",type="string",desc="用户名",required=true,default="254497767"),
 * })

---

Param|标注在Params内部|具体的参数内心
---|--|---
name| 如:username,email,passworld |请求的参数名
required| true/false |该参数是否为必填
default| 如:john john@mallae.com 123456 |该参数的默认值
type| string/number/file |该参数类型
desc| 如:用户名,邮箱,密码| 该参数的具体描述

示例: @Param(name="userName",type="string",desc="用户名",required=true,default="254497767"),

---

Responses|标注在方法上|描述该方法或者服务的返回参数
---|--|---
status| 返回对应的状态码,如:0,100,400 |成功返回状态码(配置文件配置)
message| 如:ok |成功返回消息
isList| true/false | 返回的是否是列表,生成对应的page信息
data| |所有响应Param的数组集合
failStatus|如:{status:302,message:请先登录},{status:300,message:权限不足} |错误状态列表

示例: * @Responses(isList=false,data={

 *      @Param(name="userName",type="string",desc="用户名",required=true,default="254497767"),
 *     failStatus={
 *          @FailResponse(status="2",message="普通错误"),
 *          @FailResponse(status="3",message="不是普通错误"),
 *     }
 *   )

---

FailResponse|标注Responses内部的failStatus里|可多个,描述对应的错误状态
---|--|---
status| 如:300,302 |状态码
message| 如:请先登录,权限加班 |错误消息

示例: @FailResponse(status="2",message="普通错误"),


#### 实际使用截图
  
 **接口配置**
 ![hyperf 注解文档生成](https://mallae-im.oss-cn-chengdu.aliyuncs.com/%E6%88%AA%E5%B1%8F2021-04-30%2009.57.28.png)
 
 **postman示例**
 ![hyperf 注解文档生成](https://mallae-im.oss-cn-chengdu.aliyuncs.com/%E6%88%AA%E5%B1%8F2021-04-30%2010.16.03.png)