swagger php修改成中文,thinkPHP使用Swagger生成API文档-告别苦逼的手写Word文档_Camellia Yang的博客-程序员宅基地

技术标签: swagger php修改成中文  

什么是Swagger

Swagger是一种简单、强大的RESTful API表现形式。

其拥有地球上最大的API工具生态环境,无数程序员在几乎所有主流语言和开发环境中添加了对Swagger的支持。

只要你的API添加对Swagger的支持,你就等于拥有了可交互的API文档,SDK代码生成以及外部使用友好的API。

写了这么一堆貌似很屌的话,所以……Swagger到底是个啥?

其实和官网高度概括的描述一样,Swagger是一种通用的、和编程语言无关的API的描述规范。只要开发者在自己的API之上添加符合Swagger规范的描述,就能利用上Swagger丰富的生态,找到符合自己开发语言的工具去做很多事:比如最常用的生成API文档,或者生成返回假数据的服务端基础代码等等。

说通俗点就是:平时写app接口的时候,都是先写接口再去写接口文档,有时候想测试接口都是一件很复杂的事情,忙的时候都找不到接口文档在什么地方。有了这个组件你就不用担心文档找不到、接口不好测试。它可以帮你边写接口的同时边写接口文档并且可以在线调试接口,就是这么安逸。

swagger-ui

这东西咋用呢? 说白了就是安装Swagger套件, 然后php文件代码里写注释, 用Swagger后端程序跑来php文件中提取注释, 生成一个json文件, 再通过Swagger前端来美化,达到展示JSON数据的效果。

前提:必须支持composer安装组件,且你的电脑上已经安装了composer,具体怎么安装composer这里就不详细介绍了,自行百度安装composer,最好把镜像换成国内的,如果你有很好的vpn等于我没说哈,这些方法百度上都有。

第一步:安装swagger-ui前端

下载thinkphp 框架解压后放到网站根目录中改名tp

git clone https://github.com/swagger-api/swagger-ui.git

下载完成之后,将文件夹放到你的网站根目录上面,例如我是放在我wamp下面的www目录。

接着找到dist目录, 打开index.html把其中的那一串url改成自己的 比如http://localhost/tp/swagger-docs/swagger.json

注意这个url就是后面swagger.json 的路径;

如果你想支持中文在index.html中加上

然后打开URL输入http://localhost/swagger-ui/dist/index.html就可以看到前端界面了, 应该是没内容的, 因为还没生成swagger.json, 生成好之后你设置的URL就起了作用。swagger.json我是放在tp框架下的swagger-docs目录中的,具体路径看你自己,具体下面会提到,不要慌O(∩_∩)O~。

第二步:安装swagger-php后端

进入你的项目目录执行如下命令:

composer require zircote/swagger-php

提示安装完成后会在你tp项目的vendor中生成一个zircote的组件文件夹,说明已经安装插件成功了。

第三步:生成swagger.json文件

方法1、直接在命令行中输入:

php E:/wamp/www/tp/vendor/zircote/swagger-php/bin/swagger E:/wamp/www/tp/app/controller/ -o E:/wamp/www/tp/public

注意:第一个路径是你安装成功后组件的路径;

第二个路径是你想要生成这个目录下所有用swagger方式注释的php文件,把所有注释生成api文档;

第三个路径是你存放生成swagger.json的路径

方法2、编写控制器方法生成swagger.json:

如果我们每次修改了api,还要手动执行第三步的代码,有些繁琐,那我们就在控制器中写一个方法,每次访问swagger-ui的时候自动执行,然后跳转到前台swagger界面中。

下面是控制器里面的方法

$path = '../application'; //你想要哪个文件夹下面的注释生成对应的API文档

$swagger = \Swagger\scan($path);

//header('Content-Type: application/json');

//echo $swagger;

$swagger_json_path = $path.'/swagger-docs/swagger.json';

$res = file_put_contents($swagger_path, $swagger);

if ($res == true) {

$this->redirect('http://localhost/swagger-ui/dist/index.html');

}

第四步:编写swagger注释

控制器的注释写法

/**

* @SWG\Resource(

* basePath="http://skyapi.dev",

* resourcePath="/vps",

* @SWG\Api(

* path="/vps",

* @SWG\Operation(

* method="GET",

* type="array",

* summary="Fetch vps lists",

* nickname="vps/index",

* @SWG\Parameter(

* name="expand",

* description="Models to expand",

* paramType="query",

* type="string",

* defaultValue="vps,os_template"

* )

* )

* )

* )

*/

class VpsController extends Controller

{

// ...

}

这只是个简单的实例具体的注释写法请自己百度

到此完成了,具体swagger-php的注释使用方法,请打开安装好的组件目录

794ea5797a4133eafcbbcf09d6638c68.png

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_33050117/article/details/115509096

智能推荐

滴滴:前五个月华北20城共3.51亿人使用打车应用出行_weixin_34174105的博客-程序员宅基地

6月30日,滴滴出行与第一财经商业数据中心联合发布的《知道——华北城市智能出行大数据报告》显示,今年前五月,华北地区共有3.51亿人次使用打车软件智能出行,其中,北京、太原、天津三地智能出行渗透率居于前列。该报告还以北京为例分析了智能出行平台对城市交通服务的改善。具体来看,北京地区乘客使用滴滴出行,人均等车时间仅为5.6分钟。在提高居民出行效率的同时...

VSCode+xampp搭建PHP开发环境_山水之恋的博客-程序员宅基地_vscode xampp

一:安装集成软件包1、下载XAMPP下载地址:http://xiazai.zol.com.cn/detail/38/372445.shtml2、安装:一路next,安装地址最好不要选C盘,笔者安装的是英语版,安装成功根据需求开启,笔者写PHP的话选择开启Apache3、配置环境变量把PHP.exe所在文件夹路径(笔者的是“D:\soft\xampp\php”)添加进环境变量-系统变量-Path中4、检查xampp配置是否成功在cmd中执行 php -v...

Codeforces 920D Tanks_ahu12345678的博客-程序员宅基地

题目链接题意有 \(n\) 个容积无限的水缸,初始时水量为\(a_1,a_2,...,a_n\),有一把容积为\(k\)的勺子,可以从一个水缸中舀水倒入另一个水缸中。问能否给出操作序列,使得最终某一个水缸中水的容量为\(V\).思路参考 - 粉兔.结论首先,如果\(\sum_{i=1}^{n}a_i\lt V\),显然不可行。否则,一旦\(\exists p_1,p_2,....

虚拟刻录光盘_weixin_33720078的博客-程序员宅基地

2019独角兽企业重金招聘Python工程师标准>>> ...

python格式化字符串漏洞_Python格式化字符串漏洞(Django为例)_weixin_39625747的博客-程序员宅基地

Python 格式化字符串漏洞(Django为例)在C语言里有一类特别有趣的漏洞,格式化字符串漏洞。轻则破坏内存,重则读写任意地址内容,二进制的内容我就不说了,说也不懂,分享个链接 https://github.com/shiyanlou/seedlab/blob/master/formatstring.mdPython中的格式化字符串Python中也有格式化字符串的方法,在Python2老版本中...

为什么需要 Mini-batch 梯度下降,及 TensorFlow 应用举例_机器学习X计划的博客-程序员宅基地

本文知识点:什么是 mini-batch 梯度下降mini-batch 梯度下降具体算法为什么需要 mini-batch 梯度下降batch, stochastic ,m...

随便推点

科普 | 隐私保护堪忧?加密数据仓库大显身手_Ontology Blockchain的博客-程序员宅基地

本文源自于 Rebooting Web of Trust 组织在 RWOT IX — Prague, 2019会议上的论文《Encrypted Data Vaults》的部分章节。原文:https://github.com/WebOfTrustInfo/rwot9-prague/blob/master/final-documents/encrypted-data-vaults....

linux 安装jdk,tomcat,jenkins_吾将向前冲锋的博客-程序员宅基地

Linux 安装 jenkins环境搭建1.jdk 安装linux系统下安装jdk及环境配置(两种方法)第一种属于傻瓜式安装,一键安装即可(yum安装);第二种手动安装,需要自己去Oracle官网下载需要的jdk版本,然后解压并配置环境,整个过程其实很简单。一、yum一键安装二、手动安装2.tomcat 下载 安装Linux下Tomcat安装配置买了台阿里云服务器,因为配置比较低,所以用Linux...

配置Nginx实现ThinkPHP 隐藏index.php_叱咤少帅(少帅)的博客-程序员宅基地_nginx thinkphp 隐藏index.php

背景使用PHP框架,都是通过统一的入口文件,然后访问控制的。形如:http://127.0.0.1/tp32/index.php/home/index/index这样其实不友好,我们怎么隐藏 index.php了?Nginx配置实现我们使用 try_files 去解决。server{ listen 80; server_name abc.qq.com; root /data/abc.qq.com/dist; .

TCP可靠的数据传输_Ouyang_Lianjun的博客-程序员宅基地_tcp可靠数据传输

TCP如何提供可靠的数据传输(参考资料:TCP如何提供可靠传输)TCP的连接的建立是TCP进行可靠的数据传输的基础。后续在建立连接基础上,TCP又提供了如下技术保障数据的可靠的传输TCP根据MSS等数据,把需要传输的数据分割成TCP认为最合适的大小发送。TCP在交付了其报文给网络层后,将启动一个重传定时器,如果在该TCP报文的确认报文不能及时到达,将会启动重传。(差错控制,确认重传)当TCP数

java常量池_【Java_基础】java中的常量池_冬瓜還沒熟的博客-程序员宅基地

1.java常量池的介绍java中的常量池,通常指的是运行时常量池,它是方法区的一部分,一个jvm实例只有一个运行常量池,各线程间共享该运行常量池。java常量池简介:java常量池中保存了一份在编译期间就已确定的数据。它里面包括final常量的值(包括成员常量、局部常量和引用常量)、以及对象字面量的值。在编译期间,每当给常量赋值它就会去检测常量池中是否存在该值,若存在直接返回该值的地址给常量,若...

单元测试pytest--读取csv文件代码实现_测软件的小bug的博客-程序员宅基地

1.读取csv模块import csv #导入csv模块class ReadCsv(): def read_csv(self): item =[] #定义一个空列表 c = csv.reader(open("../commonDemo/test1.csv","r")) #得到csv文件对象 for csv_i in c: item.append(csv_i) #将获取的数据添加到列表中

推荐文章

热门文章

相关标签