启动服务

1. Docker启动

进入项目根目录,运行下面的docker命令启动服务

docker run  -v $PWD/vendor/astral/php-serialize/src/OpenApi/Frankenphp/Caddyfile:/etc/frankenphp/Caddyfile -v $PWD:/app -p 8089:80 dunglas/frankenphp

访问 http://127.0.0.1:8089 展示OpenApi JSON文档

访问 http://127.0.0.1:8089/docs 展示UI文档

UI-IMG

2. 框架内启动

输出 OpenApi Json

use Astral\Serialize\OpenApi;

echo (new OpenApi())->handleByFolders()->toString();

以 Laravel 为例

2.1 创建一个路由用于访问 JSON 文档

use Illuminate\Support\Facades\Route;
use Astral\Serialize\OpenApi;

Route::get('/openapi.json', function () {
    header('Content-Type: application/json');
    echo (new OpenApi())->handleByFolders()->toString();
});

2.2 OpenApi Json 访问路径

http://your-domain.com/openapi.json

2.3 接入UI

2.3.1 接入 Swagger UI 展示页面

将以下 HTML 保存为 public/swagger.html:

<!DOCTYPE html>
<html>
<head>
  <title>API 文档</title>
  <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist/swagger-ui.css" />
</head>
<body>
  <div id="swagger-ui"></div>
  <script src="https://unpkg.com/swagger-ui-dist/swagger-ui-bundle.js"></script>
  <script>
    SwaggerUIBundle({
      url: "/openapi.json",
      dom_id: "#swagger-ui"
    });
  </script>
</body>
</html>

访问地址:http://your-domain.com/swagger.html

2.3.2 接入 Apifox Postman Apipost 等客户端工具

在客户端工具创建项目后,选择导入,输入 http://your-domain.com/openapi.json

最后更新于