Swagger 生成 PHP API 接口文档

标签(空格分隔): php


1、概况

有同学反馈写几十个接口文档需要两天的工作量, 随着多部门之间的协作越来越频繁, 维护成本越来越高, 文档的可维护性越来越差, 需要一个工具来管理这些接口的文档, 并能够充当mock server给调用方使用。

有同学推荐了swagger+easymock,Swagger是一个简单但功能强大的API表达工具。 这里介绍使用swagger-php生成PHP API文档的方法。

2、安装与使用

2.1 安装swagger-php包

git clone https://github.com/zircote/swagger-php.gitcomposer install
// 全局的
composer global require zircote/swagger-php// 项目中
composer global require zircote/swagger-php

2.2 laravel项目安装

使用 L5 Swagger https://github.com/DarkaOnLine/L5-Swagger

具体安装过程请参考此文档: https://github.com/DarkaOnLin...

2.3 编写API注解

# 创建文件 demo/customer.php
<?php/*** @OA\Info(title="My First API", version="0.1")*/
class Customer
{/*** @OA\Get(*     path="/customer/info",*     summary="用户的个人信息",*     description="这不是个api接口,这个返回一个页面",*     @OA\Parameter(name="userId", in="query", @OA\Schema(type="string"), required=true, description="用户ID"),*     @OA\Response(*      response="200",*      description="An example resource"*     )* )*/public function info(int $userId, string $userToken){}
}

2.4 生成swagger API 文件

./swagger-php/bin/openapi demo -o ./docs

API 内容如下:

# docs/openapi.yaml
openapi: 3.0.0
info:title: 'My First API'version: '0.1'
paths:/customer/info:get:summary: 用户的个人信息description: '这不是个api接口,这个返回一个页面'operationId: 'Customer::info'parameters:-name: userIdin: querydescription: 用户IDrequired: trueschema:type: stringresponses:'200':description: 'An example resource'

3、展示

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

直接通过Dockerfile构建、启动项目, 或者使用docker-compose进行服务管理。

version: '2'services:swagger-ui:build: .ports:- "8080:8080"volumes:- ./dist/:/usr/share/nginx/html/restart: on-failure

访问 http://localhost:8080/ 即可到 swagger 编辑器预览界面。

./swagger-php/bin/openapi demo -o ./swagger-ui/dist/

将 api文档输出值swagger ui的根目录下,可通过 http://localhost:8080/openapi.yaml 访问此api文档。

执行 Explore 结果如图:

4、参考资料

  • Swagger 生成 PHP restful API 接口文档
  • 如何编写基于 Swagger-PHP 的 API 文档
  • https://github.com/zircote/swagger-php
  • https://github.com/swagger-api/swagger-ui
  • Easy Mock
  • Laravel(PHP)使用Swagger生成API文档不完全指南

Swagger 生成 PHP API 接口文档相关推荐

  1. 整合swagger2生成Restful Api接口文档

    整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...

  2. php怎么根据接口文档实现功能,CodeIgniter+swagger实现 PHP API接口文档自动生成功能...

    一.安装swagger 1.首先需要有composer,没有的自行百度安装 2.下载swagger,打开网站https://packagist.org/packages/zircote/swagger ...

  3. 芋道 Spring Boot API 接口文档 Swagger 入门

    点击上方"芋道源码",选择"设为星标" 做积极的人,而不是积极废人! 源码精品专栏 原创 | Java 2020 超神之路,很肝~ 中文详细注释的开源项目 RP ...

  4. Swagger 生成 PHP restful API 接口文档

    需求和背景 需求: 为客户端同事写接口文档的各位后端同学,已经在各种场合回忆了使用自动化文档工具前手写文档的血泪史. 我的故事却又不同,因为首先来说,我在公司是 Android 组负责人,属于上述血泪 ...

  5. Laravel使用swagger PHP生成api接口文档

    Laravel使用swagger PHP生成api接口文档 Swagger集接口文档和测试于一体,就类比将postman和showdoc的结合体 首先要先安装基于laravel5的swagger包 地 ...

  6. swagger php 生成api,blog/Swagger生成php restful API接口文档.md at master · lfq618/blog · GitHub...

    Swagger生成php restful API接口文档 背景 我们的restful api项目采用yaf框架, 整体结构简单, 我们只需要用swagger扫描 application目录即可. 下面 ...

  7. API接口文档利器:Swagger

    文章目录 API接口文档利器:Swagger Swagger介绍 Swagger常用注解 Swagger测试 Swagger生成API文档的工作原理: API接口文档利器:Swagger Swagge ...

  8. 如何自动生成 API 接口文档 - 一份详细指南

    本篇文章详细教你如何使用 Apifox 的 IDEA 插件实现自动生成接口代码.好处简单总结有以下几点: 自动生成接口文档: 不用手写,一键点击就可以自动生成文档,当有更新时,点击一下就可以自动同步接 ...

  9. 开发日记-20190328 关键词 利用eolinker一键快速生成API接口文档

    今天感觉效率真的很低= =各个层面的,apk发布到现场发现出现了问题,所以一个下午都在忙着解决现场出现的问题,领导一直打电话询问进度,午觉也没有睡所以今天预计的很多计划都处于停滞状态,像昨天规划的今天 ...

最新文章

  1. deepspeech实时语音识别
  2. eclipse使用教程_使用此首选项可加快Eclipse m2e配置
  3. 【错误记录】Oboe / AAudio 播放器报错 ( onEventFromServer - AAUDIO_SERVICE_EVENT_DISCONNECTED - FIFO cleared )
  4. php 文件夹里有多少,计算目录php中有多少个文件
  5. 【项目管理】项目裁剪解读
  6. 开发人员学Linux(2):VirtualBox中安装CentOS7系统设置
  7. vi和vim命令行编辑器命令
  8. 设计模式 - Command
  9. 背景图层和普通图层的区别_图层样式(一)—高级混合选项
  10. P1287 盒子与球(python3实现)
  11. 华为否认窃密;贾跃亭陪许家印考察FF;谷歌或被罚95亿欧元 | 极客头条
  12. 宾夕法尼亚在线计算机硕士,申请访谈:宾夕法尼亚大学(Upenn)计算机科学(CS)的录取攻略...
  13. 惠普传真服务器位置,HP打印机ip地址设置及添加
  14. 上传文件到云服务器一般用什么软件?
  15. HDU 1873 优先队列 Java版
  16. Android av sync机制
  17. 俯仰角与横滚角的介绍
  18. SSH远程访问开发板
  19. 机器人 零境交错吧_电击文库零境交错角色大全 最强角色选择推荐及属性数据汇总[多图]...
  20. MATLAB 双坐标轴设置

热门文章

  1. Web前端-JavaScript基础教程下
  2. Python vtk学习(1)
  3. PHP语言、浏览器、操作系统、IP、地理位置、ISP
  4. iOS-推送通知详解
  5. C#只能靠参数而不能靠返回值类型的不同来区分方法重载
  6. ASP.NET关闭下载窗口
  7. 移动的宽带真的很垃圾
  8. PyTorch 入坑四 梯度、链式法则、计算图与反向传播
  9. Eclipse 创建自己的Wokspace和C++ Project
  10. 数据结构笔记(十二)-- 定长顺序结构的实现