iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP如何使用Swagger生成好看的API文档
  • 477
分享到

PHP如何使用Swagger生成好看的API文档

2023-07-05 03:07:32 477人浏览 独家记忆
摘要

本文小编为大家详细介绍“PHP如何使用swagger生成好看的api文档”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何使用Swagger生成好看的API文档”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧

本文小编为大家详细介绍“PHP如何使用swagger生成好看的api文档”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何使用Swagger生成好看的API文档”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

一、安装swagger-php

composer require zircote/swagger-php

swagger-php提供了命令行工具,所以可以全局安装,然后把工具的路径加到PATH里去。

composer global require zircote/swagger-php

然后把zircote/swagger-php/bin 目录加到PATH里。这个东西本人用不到,就不研究了。

二、设置一个输出api文档数据的接口

a)、生成一个控制器: SwaggerController

b)、添加一个方法: getJSON()

    public function getjsON()    {        $swagger = \OpenApi\Generator::scan([app_path('Http/Controllers/')]);        return response()->json($swagger, 200);    }

有的文章里写 \Swagger\scan(),但我这里报错,说找不到这个类。查了官方文档,要用 \OpenApi\Generator::scan()。有可能是新版本做了修改。

c)、设置路由

api.php 或者 WEB.php都行,路径不同而已。本人选择api.php。所以访问路径要加个前缀:/api。

Route::group(['prefix' => 'swagger'], function () {    Route::get('json', [\App\Http\Controllers\SwaggerController::class, 'getJSON']);});

d)、测试访问

访问 http://localhost:8000/api/swagger/json 如果看到页面正常输出json,说明配置成功了。不然就按错误提示一项项去修改吧。

三、使用

GET方法

    

这里面:

in 表示该参数出现在哪里。 query的话就是用&拼在url后面; path 类似于 /api/data/search/{param} ; header就是包含在 request header里;cookie 自然是放在cookie里。

这个版本里fORMData, body这些都没有了。

required 看名字就知道 true是必填项,false是选填项。

POST方法

    

因为本人的前端代码post都是表单提交,所以这里的post方法要用@OA\RequestBody。

@OA\Parameter是参数,是可以放到url上,但是post的表单提交,数据是不出现在url上的。

@OA\MediaType 这个: x-www-form-urlencoded 表单提交;application/json 提交json格式的数据;multipart/form-data 文件上传;

     *             @OA\Schema(     *                 ref="#/components/schemas/DataModel",     *             ),

这个是关联到一个已经定义好的schema上,省得使用相同数据的每个接口注释里都写一遍。

这里也可以单独写:

 * @OA\Schema( *   required={"name", "code"}, *   @OA\Property(property="name", type="string", title="姓名", description="这是姓名"), *   @OA\Property(property="code", type="string", title="代码", description="这是代码"), *   @OA\Property(property="phone", type="string", title="电话", description="这是电话"), * ),

上面这样,有多少个参数就写多少个@OA\Property。这里的required是个数组,写在里面的都是必填项。

四、显示swagger ui

解压后,把目录里的dist目录,复制到laravel的public目录下面,改名为swagger-ui。文件名随便取,不冲突就行。

找开这个swagger-ui目录下的swagger-initializer.js,内容大概如下:

window.onload = function() {  //<editor-fold desc="Changeable Configuration Block">  // the following lines will be replaced by Docker/configurator, when it runs in a docker-container  window.ui = SwaggerUIBundle({    url: "/api/swagger/json",    dom_id: '#swagger-ui',    deepLinking: true,    presets: [      SwaggerUIBundle.presets.apis,      SwaggerUIStandalonePreset    ],    plugins: [      SwaggerUIBundle.plugins.DownloadUrl    ],    layout: "StandaloneLayout"  });  //</editor-fold>};

主要是改 url这项。改成前面设的路由地址。这里是 "/api/swagger/json"。完成后访问 http://localhost:8000/swagger-ui/ 就能看到swagger形成的api文档了。

读到这里,这篇“PHP如何使用Swagger生成好看的API文档”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网PHP编程频道。

--结束END--

本文标题: PHP如何使用Swagger生成好看的API文档

本文链接: https://www.lsjlt.com/news/349260.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作