当前位置: 首页 > news >正文

swagger php修改成中文,Swagger-php使用指南(自动化获取最新api生成文档)

1.首先swagger 的认识

先说什么是Swagger, Swagger的使用目的是方便优美的呈现出接口API的各种定义, 生成API文档, 包括参数, 路径之类. 有时后端改了API的参数或者其他设置, 前端直接看这个Swagger UI就可以, 方便项目管理和团队协作.

官网: http://swagger.io/

参数文档: https://github.com/swagger-api/swagger-ui#parameters

这东西咋用呢? 说白了就是安装Swagger套件, 然后API代码里写注释, 用Swagger后端程序跑API来提取注释, 生成一个json文件, 再通关Swagger前端来美化,整理JSON数据.

就是一个api的管理工具,一种规范,为后端和客户端做便利的一种工具。

2.安装 后端 也就是 swagger-PHPcomposer require zircote/swagger-php

执行就可以了就下载下来了,然后项目根目录会增加一个vendor这里面就是所谓的 swagger-PHP

使用:<?php

require("vendor/autoload.php");

$openapi = \OpenApi\scan('/path/to/project');

header('Content-Type: application/x-yaml');

echo $openapi->toYaml();

3.接下来就是怎么写注释 生成json 然后 ui 显示

会看到里面好多@SWG 这样的注释(参考最新的文档实例),这些就是文档啦,这个插件会自动提取这些注释然后生成一个json文件,然后ui 就可以 读取出来了。

c5482f2fce0b

4.生成json文件

方法1:  我这里是写了一个控制器/方法,直接访问方法名获取最新信息写入到swagger.json里,然后在重定向到页面,如图

c5482f2fce0b

方法2:  当然还有命令行的方法:php /phpstudynew/www/swagger/vendor/zircote/swagger-php  /bin/swagger/phpstudynew/www/swagger/application/controllers -o  /phpstudynew/www/swagger/docs/json

-o前面是自动获取 整个文件夹下面所有的 注释,后面是生成的路径,也是ui访问的路径,这个默认好像是swagger.json就这样成功了

5.安装前端

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

下载之后找到dist目录复制到自己项目一个可以访问的位置, 打开index.html把其中的那一串url改成自己的, 比如http://localhost/yii2/swagger-docs/swagger.json$(function() {

var url = window.location.search.match(/url=([^&]+)/);

if(url && url.length > 1) {

url = decodeURIComponent(url[1]);

}else{

url = "你生成的swagger.json文件位置";

}

然后访问了自己项目dist/index.html的页面,就出现下面的界面

c5482f2fce0b

简单写了下实现swagger的方法,还待学习,总之要看文档学着把文档把例子看好,很多博客可能有时间关系 文档都更新了,所以注释格式会出现错误的现象,所以一定最先去参考文档!。

相关文章:

  • php列出数据库内的表,php列出数据库所有表入门实例
  • php 二进制流,php操作二进制数据流
  • php 与今天差425天,我在不跑就出局的425天
  • java在软链接,软链接与硬链接的区别
  • centos php镜像文件,centos7中php在官方dockfile下载构建镜像和官方拉取镜像相差4倍多,及添加库...
  • PHP产生1000个按钮,真正力量来自它的函数:PHP拥有超过 1000 个内建的函数
  • php ip 转 整数,ipv4 地址转整数
  • php可移植,PHP – 是否有PHPUnit的可移植版本?
  • 初级php工程师掌握技能,php工程师必须掌握的职业技能(上)
  • vue和php页面渲染哪个性能好,vue和react渲染的区别是什么?
  • 康盛php环境配置,php教程
  • php admin flag,ini_set、php_value、php_flag、php_admin_value、php_admin_flag修改php.ini参数
  • php终止请求,连接中止请求
  • 有php的转跳文件吗,DEDE实现转跳属性文档在模板上调用出转跳地址
  • oracle vm redhat共享文件夹,virtual box虚拟机在linux下设置共享文件夹(示例代码)
  • ES6之路之模块详解
  • github指令
  • JavaScript设计模式系列一:工厂模式
  • js ES6 求数组的交集,并集,还有差集
  • JS+CSS实现数字滚动
  • NLPIR语义挖掘平台推动行业大数据应用服务
  • React-生命周期杂记
  • SAP云平台里Global Account和Sub Account的关系
  • select2 取值 遍历 设置默认值
  • spring cloud gateway 源码解析(4)跨域问题处理
  • Vim 折腾记
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 对话 CTO〡听神策数据 CTO 曹犟描绘数据分析行业的无限可能
  • 给新手的新浪微博 SDK 集成教程【一】
  • 前端技术周刊 2019-01-14:客户端存储
  • 使用docker-compose进行多节点部署
  • 小而合理的前端理论:rscss和rsjs
  • 曾刷新两项世界纪录,腾讯优图人脸检测算法 DSFD 正式开源 ...
  • ​LeetCode解法汇总2304. 网格中的最小路径代价
  • ​香农与信息论三大定律
  • #Linux(Source Insight安装及工程建立)
  • (¥1011)-(一千零一拾一元整)输出
  • (1)(1.9) MSP (version 4.2)
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (企业 / 公司项目)前端使用pingyin-pro将汉字转成拼音
  • (十五)使用Nexus创建Maven私服
  • (四)【Jmeter】 JMeter的界面布局与组件概述
  • (一)【Jmeter】JDK及Jmeter的安装部署及简单配置
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • .NET CF命令行调试器MDbg入门(二) 设备模拟器
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core 中的路径问题
  • .net Signalr 使用笔记
  • .NET6实现破解Modbus poll点表配置文件
  • .Net面试题4
  • .NET中两种OCR方式对比
  • .Net转Java自学之路—基础巩固篇十三(集合)
  • @Not - Empty-Null-Blank
  • @TableId注解详细介绍 mybaits 实体类主键注解