摘要:,已經(jīng)好了,試著訪問(wèn)根目錄下,比如試試,出現(xiàn)界面就成功了沒(méi)從先就用命令看下的路由最上面條就是剛剛添加的路由。
先說(shuō)什么是Swagger, Swagger的使用目的是方便優(yōu)美的呈現(xiàn)出接口API的各種定義, 生成API文檔, 包括參數(shù), 路徑之類. 有時(shí)后端改了API的參數(shù)或者其他設(shè)置, 前端直接看這個(gè)Swagger UI就可以, 方便項(xiàng)目管理和團(tuán)隊(duì)協(xié)作.
官網(wǎng): http://swagger.io/
參數(shù)文檔: https://github.com/swagger-ap...
這東西咋用呢? 說(shuō)白了就是安裝Swagger套件, 然后API代碼里寫注釋, 用Swagger后端程序跑API來(lái)提取注釋, 生成一個(gè)json文件, 再通關(guān)Swagger前端來(lái)美化,整理JSON數(shù)據(jù).
要使用Swagger要安裝2個(gè)東西, 前段,用來(lái)顯示;后端, 用來(lái)生成JSON
1, 安裝前段swagger-ui下載
1
git clone https://github.com/swagger-ap...
下載之后找到dist目錄, 打開index.html把其中的那一串url改成自己的, 比如http://localhost/yii2/swagger...
$(function () {
var url = window.location.search.match(/url=([^&]+)/); if (url && url.length > 1) { url = decodeURIComponent(url[1]); } else { url = "http://localhost/yii2/swagger-docs/swagger.json"; }
還可以把界面調(diào)整成中文, 放開js文件的注釋即可
1
2
3
然后打開URL就可以看到前端界面了, 應(yīng)該是沒(méi)內(nèi)容的, 因?yàn)檫€沒(méi)生成swagger.json, 生成好之后你設(shè)置的URL就起了作用, 直接訪問(wèn)前端就好
http://localhost/yii2/swagger...
2, 安裝后端1
git clone https://github.com/zircote/sw...
因?yàn)槲矣玫氖莥ii2, 所以使用了composer來(lái)安裝
"require": { "zircote/swagger-php": "*" }
之后composer update, 或者直接命令行, 詳見https://github.com/zircote/sw...
DCdeMacBook-Pro:yii2 DC$ php composer.phar require zircote/swagger-php
我把swagger-php放在根目錄下,然后用官方提供的Examples來(lái)生成測(cè)試json
cd swagger-php
mkdir doc
php swagger.phar Examples -o doc
"-o" 前面代表API源目錄, 即你想要生成哪個(gè)目錄的API文檔, 你的項(xiàng)目代碼目錄. "-o" 后面是生成到哪個(gè)path
我沒(méi)有進(jìn)入到swagger-php下面, 直接打的命令行, 任意路徑下都可以執(zhí)行生成json操作
php /Users/DC/www/yii2/vendor/zircote/swagger-php/bin/swagger /Users/DC/www/yii2/vendor/zircote/swagger-php/Examples -o /Users/DC/www/yii2/swagger-docs
然后再看http://localhost/yii2/swagger... 生成了API文檔
準(zhǔn)備工作都做好了, 那就寫代碼注釋就行了, 注釋怎么寫? 參考官方文檔http://zircote.com/swagger-ph...
比如Model的
/**
@SWGModel(
id="vps",
required="["type", "hostname"]",
@SWGProperty(name="hostname", type="string"),
@SWGProperty(name="label", type="string"),
@SWGProperty(name="type", type="string", enum="["vps", "dedicated"]")
)
*/
class HostVps extends Host implements ResourceInterface
{
// ...
}
比如Controller的
/**
@SWGResource(
basePath="http://skyapi.dev",
resourcePath="/vps",
@SWGApi(
path="/vps",
@SWGOperation(
method="GET",
type="array",
summary="Fetch vps lists",
nickname="vps/index",
@SWGParameter(
name="expand",
description="Models to expand",
paramType="query",
type="string",
defaultValue="vps,os_template"
)
)
)
)
*/
class VpsController extends Controller
{
// ...
}
還看到一種集成把Swagger集成到Laravel中. Github地址是這個(gè)https://github.com/slampenny/...,不過(guò)這個(gè)就不能用git clone方式去按照了,配置太麻煩,用composer吧
composer require "jlapp/swaggervel:dev-master"
下一步 JlappSwaggervelSwaggervelServiceProvider 復(fù)制這一句到 app/config/app.php 的 providers數(shù)組最上面,然后
php artisan vender:publish
這一步把相關(guān)文件包括swagger ui復(fù)制到laravel框架public下面。OK,已經(jīng)好了,試著訪問(wèn)根目錄下,比如 www.1.com/api-docs試試,出現(xiàn)界面就成功了!沒(méi)從先就用命令看下laravel的路由
php artisan route:list
最上面2條就是剛剛添加的路由。 刷新頁(yè)面是不是發(fā)現(xiàn)空白?要生產(chǎn)json需要你寫@SWG的注釋,再laravel的app目錄下面任何文件寫好就可以了,一般我們只需要寫model和controller的,這個(gè)插件會(huì)掃描這個(gè)目錄生產(chǎn)json文件。
=====================================
每次改動(dòng)API代碼注釋之后都要手動(dòng)生成json文件? 太麻煩了, 寫了個(gè)controller, 每次訪問(wèn)swagger-ui的這個(gè)controller, 先生成json再跳轉(zhuǎn)到ui頁(yè)面
$b2broot = Yii::getAlias("@b2broot");
$swagger = Swaggerscan($b2broot."/myapi");
$json_file = $b2broot."/swagger-docs/swagger.json";
$is_write = file_put_contents($json_file, $swagger);
if ($is_write == true) {
$this->redirect("http://localhost/yii2/swagger...");
}
參考自 https://www.cnblogs.com/derrc...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/29166.html
摘要:需求和背景需求為客戶端同事寫接口文檔的各位后端同學(xué)已經(jīng)在各種場(chǎng)合回憶了使用自動(dòng)化文檔工具前手寫文檔的血淚史我的故事卻又不同因?yàn)槭紫葋?lái)說(shuō)我在公司是組負(fù)責(zé)人屬于上述血淚史中催死人不償命的客戶端陣營(yíng)但血淚史卻是相通的沒(méi)有自動(dòng)化文檔的日子對(duì)接口就是 需求和背景 需求: 為客戶端同事寫接口文檔的各位后端同學(xué),已經(jīng)在各種場(chǎng)合回憶了使用自動(dòng)化文檔工具前手寫文檔的血淚史.我的故事卻又不同,因?yàn)槭紫葋?lái)說(shuō)...
摘要:有同學(xué)推薦了,是一個(gè)簡(jiǎn)單但功能強(qiáng)大的表達(dá)工具。這里介紹使用生成文檔的方法。將文檔輸出值的根目錄下,可通過(guò)訪問(wèn)此文檔。執(zhí)行結(jié)果如圖參考資料生成接口文檔如何編寫基于的文檔使用生成文檔不完全指南 Swagger 生成 PHP API 接口文檔 標(biāo)簽(空格分隔): php 1、概況 有同學(xué)反饋寫幾十個(gè)接口文檔需要兩天的工作量, 隨著多部門之間的協(xié)作越來(lái)越頻繁, 維護(hù)成本越來(lái)越高, 文檔的可維...
摘要:本文將會(huì)告訴你如何借助中插件,在開發(fā)微服務(wù)項(xiàng)目時(shí)項(xiàng)目和其它項(xiàng)目方法類似快速的在代碼中使用注釋來(lái)創(chuàng)建文檔。本文將會(huì)持續(xù)修正和更新,最新內(nèi)容請(qǐng)參考我的上的程序猿成長(zhǎng)計(jì)劃項(xiàng)目,歡迎,更多精彩內(nèi)容請(qǐng)??蚣芘渲梦覀兪褂卯?dāng)前最新的來(lái)演示。 showImg(https://segmentfault.com/img/remote/1460000017715535?w=1072&h=711); 作為一名...
摘要:部署到項(xiàng)目中可以下來(lái)也可以下載文件。解壓后把目錄下的目錄拷貝到下下的文件夾中,如新建。訪問(wèn)修改為自己的項(xiàng)目文件。找到,把修改為自己的,如,再次訪問(wèn)即可。但是并不存在,需要生成。如放在下的目錄,用于存放文件。 1. 部署swagger ui 到項(xiàng)目中: 可以Git下來(lái) git clone https://github.com/swagger-api/swagger-uiv也可以下載zi...
摘要:安裝支持和請(qǐng)移步到使用手札。在安裝支持菜單欄搜索和安裝使用時(shí)可不用完全參照插件的備注方式,使用自動(dòng)補(bǔ)全內(nèi)容的格式便可以,即建設(shè)的備注格式在自動(dòng)補(bǔ)全小結(jié)從官方文檔能看出對(duì)于支持可選和,經(jīng)過(guò)試驗(yàn)后發(fā)覺(jué)必須安裝才能很好地使用備注補(bǔ)全功能。 PHPStorm安裝 PHPStorm 使用手札——安裝看這里 代碼自動(dòng)提示支持 laravel引入laravel-ide-helper能為PHPStor...
閱讀 1881·2021-11-11 16:55
閱讀 2063·2021-10-08 10:13
閱讀 738·2019-08-30 11:01
閱讀 2155·2019-08-29 13:19
閱讀 3277·2019-08-28 18:18
閱讀 2620·2019-08-26 13:26
閱讀 578·2019-08-26 11:40
閱讀 1864·2019-08-23 17:17