PHP项目swagger结合yapi命令生成接口文档

  • 这里以TP5(thinkPHP5)为例子
  1. 背景(先说一些废话)
    Swagger 是一个简单但功能强大的 API 表达工具。它具有地球上最大的 API 工具生态系统,数以千计的开发人员,使用几乎所有的现代编程语言,都在支持和使用 Swagger。使用 Swagger 生成 API,我们可以得到交互式文档,自动生成代码的 SDK 以及 API 的发现特性等。
    OpenAPI 规范是 Linux 基金会的一个项目,试图通过定义一种用来描述 API 格式或 API 定义的语言,来规范 RESTful 服务开发过程。OpenAPI 规范帮助我们描述一个 API 的基本信息
    而swagger就是使用openapi的规范使用工具
    OpenAPI = 规范
    Swagger = 实现规范的工具

  2. 为何要使用 OpenAPI 规范?
    OpenAPI 规范这类 API 定义语言能够帮助你更简单、快速的表述 API,尤其是在 API 的设计阶段作用特别突出
    根据 OpenAPI 规范编写的二进制文本文件,能够像代码一样用任何 VCS 工具管理起来
    一旦编写完成,API 文档可以作为:
    需求和系统特性描述的根据
    前后台查询、讨论、自测的基础
    部分或者全部代码自动生成的根据
    其他重要的作用,比如开放平台开发者的手册...

  3. 首先项目安装swagger

  • composer安装swagger-php (我另一篇文章写了php安装swagger+swaggerUI 也有写到)
    为了方便 我使用了一些插件
1. phpstrom插件安装
PHP Annotation
swagger
2. composer安装swagger-php
composer require zircote/swagger-php
  1. 数据格式编码(以下是自己写的一点示例)
    示例
 /**
     * @author 才不是小小喵
     * @SWG\Post(
     *     path="/testThree",
     *     consumes={"multipart/form-data"},
     *     tags={"测试分类"},
     *     summary="这是测试第四个接口",
     *     description="这是第四个接口的描述",
     *     @SWG\Parameter( name="id",in="formData",description="这是请求参数描述(才不是小小喵)",required=true, type="integer", 
     *     default="1", ),
     *     @SWG\Response(
     *      response="200",
     *     description="返回结果"
     * )
     * )
     */
    public function testThree(){}

示例说明

@SWG\Post 声明接口类型
@SWG\Parameter 接口参数
@SWG\Response 接口返回

示例图片:


image.png
  1. 生成swagger.json
    项目下运行命令
php vendor\zircote\swagger-php\bin\swagger application\index\controller -o application\swagger-docs
  1. 上传swagger.json到yapi
    安装 yapi-cli (直接命令导入接口)
##官方安装命令
npm install -g yapi-cli --registry https://registry.npm.taobao.org

新建一个配置文件
目录下新建配置文件yapi-import.json (默认必须用这个名字)
以下是yapi-import.json内容

{
  "type": "swagger",
  "token": " ad71309a4557bdb540ffc2c40278071006ba24343ac9c5e39c3aa05e42b34a79",
  "file": " ./application/swagger-docs/swagger.json ",
  "merge": "good", 
  "server": " http://192.168.0.199:23009/ "
}

执行导入命令

yapi import

命令解释:
type 是数据数据方式 目前官方只支持 swagger
token 是项目token 在 Yapi项目 设置 > token配置
file 是 swagger.json 接口目录地址 或者URL
merge 导入旧的接口策略 默认使用智能模式 一共有 "normal"(普通模式) "good"(智能合并) "merge"(完全覆盖) 三种模式(swagger自动同步 其实也是一样)
server 是yapi服务器地址

  • PS:token地址 (swagger自动同步其实也可以 这篇文章说的是手动同步)
    image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,558评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,002评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,036评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,024评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,144评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,255评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,295评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,068评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,478评论 1 305
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,789评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,965评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,649评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,267评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,982评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,223评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,800评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,847评论 2 351

推荐阅读更多精彩内容