ziyoren/swagger

Swagger plugin for Webman

0.1.0 2023-03-13 03:25 UTC

This package is not auto-updated.

Last update: 2024-04-23 06:55:29 UTC


README

Swagger UI plugin for webman

项目介绍

Swagger是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务。 ziyoren/swagger集成了SwaggerUI和zircote/swagger-php。具备以下特点:

  • 接口文档在线自动生成
  • 可完成功能测试
  • API文档始终保持同步

安装

composer require ziyoren/swagger

注意 虽然可以在Webman的应用市场下载源码,但是推荐用composer安装,因为可以自动安装相关依赖。

如果您是从Webman的应用市场下载的源码,请确保安装了zircote/swagger-php

composer require zircote/swagger-php

访问

访问http://127.0.0.1:8787/app/swagger就可以看到SwaggerUI的界面。

更新你的代码

以主项目app/controller/IndexController.php为例,增加注释

<?php

namespace app\controller;

use support\Request;

/**
 * @OA\Info(
 *   title="我的第一个API",
 *   version="0.0.1",
 *   contact={
 *     "name": "技术支持",
 *     "email": "asun@66580.cn"
 *   }
 * )
 */


class IndexController
{


    public $name;

    
    public function index(Request $request)
    {
        return response('hello webman'. $this->name);
    }

    public function view(Request $request)
    {
        return view('index/view', ['name' => 'webman']);
    }


    /**
     * @OA\Get(
     *     path="/index/json",
     *     @OA\Response(response="200", description="{ 'code': 0, 'msg': 'ok' }")
     * )
     */

    public function json(Request $request)
    {
        return json(['code' => 0, 'msg' => 'ok']);
    }

}

默认扫描路径

默认扫描主项目的app/controller目录。如果需要增加扫描的目录,请修改plugin/swagger/config/app.php文件里的scan_path

<?php

use support\Request;

return [
    'debug' => true,
    'controller_suffix' => 'Controller',
    'controller_reuse' => false,
    'version' => '0.1.0',
    //增加对model目录的扫描
    'scan_path' => [app_path('controller'), app_path('model')],
];

依赖

  • PHP >= 7.2
  • Webman >= 1.4
  • zircote/swagger-php >= 4.5

Link

Swagger-PHP

示例值得看看/Learn by example

Swagger-php 2.x documentation