介紹:
????Swagger 是一個(gè)規(guī)范和完整的框架螃宙,用于生成、描述置济、調(diào)用和可視化 RESTful 風(fēng)格的 Web 服務(wù)解恰。總體目標(biāo)是使客戶端和文件系統(tǒng)作為服務(wù)器以同樣的速度來(lái)更新浙于。文件的方法护盈,參數(shù)和模型緊密集成到服務(wù)器端的代碼,允許API來(lái)始終保持同步羞酗。(簡(jiǎn)單來(lái)說(shuō)就是構(gòu)建Annotation)?
? ? 首先使用composer安裝swagger-php擴(kuò)展包
????$ composer require zircote/swagger-php????
? ? 創(chuàng)建一個(gè)laravel控制器
?php artisan make:controller SwaggerController?
? ? 在控制器中寫入兩個(gè)方法(分別是getJson? getData)
<?php
namespace????App\Http\Controllers;
useIlluminate\Http\Request;
useApp\Http\Requests;
useApp\Http\Controllers\Controller;
classSwaggerControllerextendsController{
/**
? ? * 返回JSON格式的Swagger定義
? ? */
public function getJSON(){? ? }
/**
? ? * 假設(shè)是項(xiàng)目中的一個(gè)API
? ? */
public function getData(){? ? }}
配置相應(yīng)路由
<?php
Route::group(['prefix' => 'swagger'], function () {
Route::get('json', 'SwaggerController@getJSON');
Route::get('my-data', 'SwaggerController@getMyData');
})
我們先實(shí)現(xiàn)getJSON方法腐宋,使其能夠返回合法的Swagger定義:
<?php
// ... /** * 返回JSON格式的Swagger定義
* * 這里需要一個(gè)主`Swagger`定義:
* @SWG\Swagger( * @SWG\Info(
* title="我的`Swagger`API文檔",
* version="1.0.0"
* )
* )
*/
public function getJSON() {
// 你可以將API的`Swagger Annotation`寫在實(shí)現(xiàn)API的代碼旁,從而方便維護(hù)檀轨, // `swagger-php`會(huì)掃描你定義的目錄胸竞,自動(dòng)合并所有定義。這里我們直接用`Controller/` // 文件夾裤园。
$swagger = \Swagger\scan(app_path('Http/Controllers/')); return response()->json($swagger, 200); }
// ...
訪問(wèn)一下/swagger/json撤师,如果我們看到下面的返回就說(shuō)明搭建成功了:
{"swagger":"2.0","info":{"title":"\u6211\u7684`Swagger`API\u6587\u6863","version":"1.0.0"},"paths":{},"definitions":{}}