环境
PHP 7.2
Laravel 5.6
安装
一、安装 swagger-php
项目根目录下运行命令:composer require zircote/swagger-php
静待命令执行完成即可
二、下载 swagger-ui
运行 git 指令:git clone https://github.com/swagger-api/swagger-ui.git
得到结果如下:
特别注意红框文件,这就是 swagger 静态界面
配置
一、配置一个接口提供数据
接口
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use Swagger\Annotations\Info;
use Swagger\Annotations\OA;
/**
* @OA\Info(title="My First API", version="0.1")
*/
/**
* @OA\Get(
* path="/api/resource.json",
* @OA\Response(response="200", description="An example resource")
* )
*/
class SwaggerController extends Controller
{
public function doc()
{
$swagger = \OpenApi\scan(app_path('Http/Controllers/Api'));
return response()->json($swagger);
}
}
路由
Route::get('/swagger/doc', 'SwaggerController@doc');
二、集成 swagger-ui
public 文件夹下放入静态文件
此处将 dist 目录改名后放入
配置数据获取接口, 打开 swagger-ui下
的 index.html
,找到如下代码,更换 url 配置
window.onload = function() {
// Begin Swagger UI call region
const ui = SwaggerUIBundle({
//url: "https://petstore.swagger.io/v2/swagger.json", //旧的配置
url: "/swagger/doc", //新的配置
dom_id: '#swagger-ui',
deepLinking: true,
presets: [
SwaggerUIBundle.presets.apis,
SwaggerUIStandalonePreset
],
plugins: [
SwaggerUIBundle.plugins.DownloadUrl
],
layout: "StandaloneLayout"
})
// End Swagger UI call region
window.ui = ui
}
示例
PackageInfo.php
namespace App\Http\Controllers;
/**
* @OA\Info(title="好像有货接口文档", version="0.1")
*/
class PackageInfo {
}
UserController.php
/**
* @OA\Tag(
* name="user",
* description="用户模块",
* )
*/
class UserController extends Controller
{
/**
* @OA\Post(
* path="/api/login",
* tags={"user"},
* summary="登录",
* @OA\Parameter(name="isFastLogin", in="query", @OA\Schema(type="boolean")),
* @OA\Parameter(name="tel", in="query", @OA\Schema(type="string")),
* @OA\Parameter(name="verification_code", in="query", @OA\Schema(type="string")),
* @OA\Parameter(name="password", in="query", @OA\Schema(type="string")),
* @OA\Response(response=200, description=" {err_code: int32, msg:string, data:[]} "
* )
* )
*/
public function login(Request $request)
{
}
}
更多实例
项目根路径: /vendor/zircote/Examples/
成果
+++++++++++++++++++++++++++++++++++
YouY Blog —— 专心做你的烂笔头。访问主页
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于