Laravel 開發工具箱之 SwaggerNotes 生成工具

註:該工具僅生成注釋內容,依賴 swagger-php 包才能生成 .yaml 接口文件

本地開發環境安裝依賴包

composer require laravel-toolbox/swagger-notes --dev

請在 Controller 類中對應的方法 return 前,加入如下代碼:

ToolboxFacadesSwaggerNotes::setRequest($request) ->setResponse($this->jsonRender(TransformHelper::camelSnakeCase($result, 'camel_case'))) ->setComments(['affilliate_web', 'affilliate', 'member'], $request->rules($this->affiliateService), $this->optionComments) ->setApiInfo([ 'summary' => '查詢大聯盟會員資料', 'description' => '含是否填寫個人資料、賬戶資料', 'operation_id' => __FUNCTION__, 'tags' => __CLASS__, ]) ->generate();

新增可支持擴展字段的備註信息,在調用類中新增&修改如下代碼即可:

public $optionComments = [ 'metadata' => '元數據', 'data' => '數據', 'desc' => '狀態描述', 'infoType' => '資料類型:ALL-全部;PROFILE-個人資料;ADDRINFO-通訊資料;ACCINFO-帳戶資料;WEBINFO-網站資料;', 'profile' => '個人資料', 'addrInfo' => '通訊資料', 'accInfo' => '帳戶資料', 'webInfo' => '網站資料', 'brandName' => '白牌名稱', 'brandSetting' => '白牌設置', 'imageUrl' => '圖片連結', 'brandUrl' => '白牌連結', 'footerCopyright' => '底部授權信息', 'citys' => '所含城市', 'prods' => '所含省份', 'profileFinished' => '個人資料是否完成的標識', 'accInfoFinished' => '賬戶資料是否完成的標識', 'isApproved' => '聯盟審核是否通過的標識', 'isActive' => '聯盟賬戶是否活躍的標識', ];

默認生成路徑在swagger/SwaggerNotes目錄下,層級結構如下:

swagger ├── Swagger # 生成的注釋目錄 │ ├── Affiliate # 生成的接口目錄 │ │ └── affiliateView.php # 生成的接口注釋文件 │ └── swagger.php # 生成的注釋頭部信息文件 ├── swagger-constants.php ├── swagger-info.php ├── swagger.yaml └── swagger_doc.yaml # 生成的接口文件

附表

方法 釋義 可选 備註
setRequest 設置請求體,可解析出當前接口的methodparameterurlpathInfo ✔️ 第二個形參可选,支持被改造的Request請求體,如:new GetAffiliateParameter($request)
setResponse 設置返回體,可直接給返回的數組結構
setComments 設置字段的備註、規則等 ✔️ 接口字段涉及的表集合;驗證規則,不設置則取->rules()
setApiInfo 設置 API_INFO 的相關參數
summary 設置當前接口文檔的summary概述信息 ✔️ 不設置則取->name()
description 設置當前接口文檔的description描述信息 ✔️
operation_id 設置當前接口文檔的操作ID標識 建議__FUNCTION__
tags 設置當前接口文檔的標籤分類 建議__CLASS__
generate 生成文檔 僅本地、測試環境或開啟 debug 模式時生效

版权声明:

1、该文章(资料)来源于互联网公开信息,我方只是对该内容做点评,所分享的下载地址为原作者公开地址。
2、网站不提供资料下载,如需下载请到原作者页面进行下载。
3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考学习用!
4、如文档内容存在违规,或者侵犯商业秘密、侵犯著作权等,请点击“违规举报”。