一、code样例
<?phpnamespace App\Module\Sup\Controller\Api\V1\Order;use Swork\Bean\BeanCollector;use ...../*** @Controller("/sup/api/v1/order")*/class OrderController extends BeanCollector{/*** @Inject()* @var OrderLogic*/private $orderLogic;/*** 获取用户订单列表* @param Argument $argument* @return array* @throws*/public function pager(Argument $argument){//外部参数$uid = Context::get('userId');/*** 订单状态* @var int* @sample 11*/$odrstat = $argument->get('odrstat', 0);/*** 页码* @var int* @sample 1*/$idx = $argument->get('idx', 1);/*** 每页行数* @var int* @sample 10*/$size = $argument->get('size', 10);//查询字符$query = ['uid' => $uid,'odrstat' => $odrstat,];//获取数据$list = $this->orderLogic->getPager($query, $idx, $size);//API返回/*** {* list: [* {* okey: "101201904101123", //订单号* gid: "101201904101123", //商品ID* odrstat: 11, //订单状态 11:待揽件 .....* odrtime11: "2019-09-17 21:00", //下单时间* pname: "iPhone 8 全网通4G双卡双待 256G 深空灰色 美版" //商品信息* refprice3: "6,553" //预计帮卖价* minprice: "2,199" //保底售价* prepayamt: "2,000" //预付款* payamt: "20", //尾款* saleprice: "1,000" //销售价格* totalamt:"2,020", //已收总金额* }* ]* pager: {* idx: 1, 页码* size: 20, 当页行数* },* }*/return ['list' => $list,'pager' => ['idx' => $idx,'size' => count($list),]];}}
二、解析说明
1)基本规范与其它的一致;此项特别要求两个地方:
a)外部参数注释:每个外部参数单独注释,把 参数名称、参数类型、样例数据 描述清楚;
b)返回样例子注释(固定://API返回 );
参数注释:
<?php/*** 订单状态 ---- 第一行:参数名称* @var int ---- 第二行:参数类型* @sample 11 ---- 第三行:样例数据*/$odrstat = $argument->get('odrstat', 0);
返回注释:
<?php//API返回/*** {* list: [* {* okey: "101201904101123", //订单号* gid: "101201904101123", //商品ID* odrstat: 11, //订单状态 11:待揽件 .....* odrtime11: "2019-09-17 21:00", //下单时间* pname: "iPhone 8 全网通4G双卡双待 256G 深空灰色 美版" //商品信息* refprice3: "6,553" //预计帮卖价* minprice: "2,199" //保底售价* prepayamt: "2,000" //预付款* payamt: "20", //尾款* saleprice: "1,000" //销售价格* totalamt:"2,020", //已收总金额* }* ]* pager: {* idx: 1, 页码* size: 20, 当页行数* },* }*/return ['list' => $list,'pager' => ['idx' => $idx,'size' => count($list),]];
操作方法:在开发完成时,运行后,把结果复制至这里。
三、如此目的
相对普通Controller开发的,API开发的注释会麻烦一些。
为了给前端一目了解的API接口文档,系统自动通过扫描此类注释,生成API文档。
生成的例子:
四、无数据返回样例
<?php/*** 删除订单* @param Argument $argument* @return array* @throws*/public function delete(Argument $argument){/*** 订单ID* @var string* @sample 1*/$oid = $argument->post('oid', '');//删除数据$this->orderLogic->delete($oid);//API返回/*** success*/return 'success';}
注:API返回内容,仅有一个 sucess ,没有其它内容
五、错误返回样例#1
禁止在Logic层返回 sucess ,然后在Controller返回。
<?php/*** 删除订单* @param Argument $argument* @return array* @throws*/public function delete(Argument $argument){/*** 订单ID* @var string* @sample 1*/$oid = $argument->post('oid', '');//删除数据$info = $this->orderLogic->delete($oid); //logic层返回 success/*----------------------------/* 这个是错误的代码 !!!!!/*----------------------------//API返回/*** success*/return $info;}
