Swagger-php使用指南(自動化獲取最新api生成文檔)

1.首先swagger 的認(rèn)識

先說什么是Swagger, Swagger的使用目的是方便優(yōu)美的呈現(xiàn)出接口API的各種定義, 生成API文檔, 包括參數(shù), 路徑之類. 有時后端改了API的參數(shù)或者其他設(shè)置, 前端直接看這個Swagger UI就可以, 方便項目管理和團(tuán)隊協(xié)作.

官網(wǎng): http://swagger.io/

參數(shù)文檔: https://github.com/swagger-api/swagger-ui#parameters

這東西咋用呢? 說白了就是安裝Swagger套件, 然后API代碼里寫注釋, 用Swagger后端程序跑API來提取注釋, 生成一個json文件, 再通關(guān)Swagger前端來美化,整理JSON數(shù)據(jù).

就是一個api的管理工具,一種規(guī)范,為后端和客戶端做便利的一種工具。

2.安裝 后端 也就是 swagger-PHP

????composer require zircote/swagger-php?

執(zhí)行就可以了就下載下來了,然后項目根目錄會增加一個vendor這里面就是所謂的 swagger-PHP

使用:

<?php

require("vendor/autoload.php");

$openapi = \OpenApi\scan('/path/to/project');

header('Content-Type: application/x-yaml');

echo $openapi->toYaml();

3.接下來就是怎么寫注釋 生成json 然后 ui 顯示

會看到里面好多@SWG 這樣的注釋(參考最新的文檔實例),這些就是文檔啦,這個插件會自動提取這些注釋然后生成一個json文件,然后ui 就可以 讀取出來了。


4.生成json文件

方法1:? 我這里是寫了一個控制器/方法,直接訪問方法名獲取最新信息寫入到swagger.json里,然后在重定向到頁面,如圖


方法2:? 當(dāng)然還有命令行的方法:

php /phpstudynew/www/swagger/vendor/zircote/swagger-php? /bin/swagger/phpstudynew/www/swagger/application/controllers -o? /phpstudynew/www/swagger/docs/json

-o前面是自動獲取 整個文件夾下面所有的 注釋,后面是生成的路徑,也是ui訪問的路徑,這個默認(rèn)好像是swagger.json就這樣成功了

5.安裝前端

swagger-ui下載?

git clone https://github.com/swagger-api/swagger-ui.git

下載之后找到dist目錄復(fù)制到自己項目一個可以訪問的位置, 打開index.html把其中的那一串url改成自己的, 比如http://localhost/yii2/swagger-docs/swagger.json

$(function() {

var url = window.location.search.match(/url=([^&]+)/);

if(url && url.length > 1) {? ? ? ??

url = decodeURIComponent(url[1]);? ? ??

}else{? ? ? ?

?url = "你生成的swagger.json文件位置";? ? ?

?}

然后訪問了自己項目dist/index.html的頁面,就出現(xiàn)下面的界面


簡單寫了下實現(xiàn)swagger的方法,還待學(xué)習(xí),總之要看文檔學(xué)著把文檔把例子看好,很多博客可能有時間關(guān)系 文檔都更新了,所以注釋格式會出現(xiàn)錯誤的現(xiàn)象,所以一定最先去參考文檔!。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容