swagger2 升级到了3,并改名为OpenAPI Spec,所有部分注解有一些变化,这里以thinkphp6+swagger-php3.0来配置

1、前端部分git或dowload一份swagger-ui到能够访问到服务目录中,如我这里nginx配置指向到thinkphp6根目录public中,所以download一份swagger-ui到该根目录中,swagger-ui下载地址https://github.com/swagger-api/swagger-ui

找到dist目录, 打开index.html把其中的url改成自己到服务器url,这里我以本地配置为例:

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

2、安装swagger-php后端,在thinkphp6框架的总目录下面执行,composer安装swagger-php插件。(最好使用composer管理插件,万一composer无法使用可以尝试手动安装)

composer require zircote/swagger-php

注意此时安装是使用最新版的3.0

3、这里通过swagger自定义对注解,然后由swagger-php来生成swagger.json的接口配置文件。生成方法:

命令行生成

$> php /usr/local/var/www/vendor/zircote/swagger-php/bin/openapi /usr/local/var/www/app/api/controller -o /usr/local/var/www/public/uploads

其中:

/usr/local/var/www/vendor/zircote/swagger-php/bin/openapi为swagger-php插件生成json文件的主命令

/usr/local/var/www/app/api/controller 为接口目录,该目录会被主命令依次扫描生成对应json配置代码

/usr/local/var/www/public/uploads为swagger.json存储文件的目录

通过控制器代码自动生成swagger.json

public function apidoc(){

// $RootDir = $_SERVER['DOCUMENT_ROOT'];

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

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

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

// var_dump($swagger);

$swagger_json_path = './uploads/swagger.json';

$res = file_put_contents($swagger_json_path,$swagger->toYaml());

if ($res == true) {

return redirect('http://127.0.0.1:8806/swagger-ui/dist/index.html');

}

}

自动生成swagger.json后会自动跳转到最开始配置到swagger-ui前端地址,我们可以尝试在controller目录下新建一个swagger.php,如下代码:

/**

@OA\Swagger(

schemes={"http"},

host="127.0.0.1:8806",

basePath="/",

@OA\Info(

version="1.0.0",

title="接口文档",

description="Version: 1.0.0",

@OA\Contact(name = "daydream", email = "heheiscool@163.com")

),

*/

注意swagger格式,这里行前缀以*开头,大家自己替换下(这里编辑显示有点小问题)

然后显示以下就代表配置正常了:

4、OpenApi3.0(swagger3.0)的语法格式,建议直接参考案例比较快。这里注意:

原来2.0的@SWG都被@OA替代

接口参数请求in的类型有:path、headers、cookies,没有了query、formData等

formData被关键字requestBody替代,requestBody将会更灵活、功能更完整

案例:

use OpenApi\Annotations as OA;

/**

@OA\Info(

version="1.0",

title="Example for response examples value"

)

*/

/**

@OA\Post(

path="/users",

summary="Adds a new user",

@OA\RequestBody(

@OA\MediaType(

mediaType="application/json",

@OA\Schema(

@OA\Property(

property="id",

type="string"

),

@OA\Property(

property="name",

type="string"

),

example={"id": 10, "name": "Jessica Smith"}

)

)

),

@OA\Response(

response=200,

description="OK"

)

)

*/

以上为post请求的例子,请区别与2.0的不同

namespace OpenApi\LinkExample;

/**

MVC controller that handles "users/" urls./

class UsersController

{

/**

@OA\Get(path="/2.0/users/{username}",

operationId="getUserByName",

@OA\Parameter(name="username",

in="path",

required=true,

@OA\Schema(type="string")

),

@OA\Response(response="200",

description="The User",

@OA\JsonContent(ref="#/components/schemas/user"),

@OA\Link(link="userRepositories", ref="#/components/links/UserRepositories")

)

)

*/

public function getUserByName($username)

{

}

}

swagger的php配置,thinkphp6+swagger-php配置管理接口文档相关推荐

  1. idea swagger生成接口文档_spring boot集成Swagger-UI接口文档

    本文介绍如何用spring boot集成Swagger-UI,实现项目在线接口文档 一.Swagger-UI简介 Swagger是一个Restful风格接口的文档在线自动生成和测试的框架 官网对Swa ...

  2. Swagger生成接口文档

    目录 1 简单介绍 2 入门案例 2.1 引入依赖 2.2 编写配置 2.3 启动测试 3 常用注解 4 生成可以生成文档的增强 4.1 添加依赖 4.2 重启项目 5 记录生产环境的坑 6 生成do ...

  3. 接口文档神器Swagger(上篇)

    本文来自网易云社区 作者:李哲 接口文档管理一直是一个让人头疼的问题,伴随着各种接口文档管理平台涌现,如阿里开源的rap,ShowDoc,sosoapi,等等(网上能找到很多这种管理平台,包括我们自己 ...

  4. Swagger 配置多个接口文档实现 和 实现多包扫描的配置方式

    一.Swagger 配置多个接口文档实现 场景说明:在一个项目中,后台接口分为后端后台接口和小程序端接口,为了方便区分,希望将2种不同的接口分开展示. 在做当前配置之前,首先你得先配置好基础的swag ...

  5. swagger接口文档,API详细配置,绝对简单!!!

    1.第一步:引入依赖,在项目的pom文件中引入swagger的依赖,如下. <dependency><groupId>io.springfox</groupId>& ...

  6. 【愚公系列】2023年02月 WMS智能仓储系统-007.Swagger接口文档的配置

    文章目录 前言 一.Swagger接口文档的配置 1.安装包 2.注入 2.1 Swagger服务的注入 2.2 appsetting.json的配置 2.3 Swagger服务的封装 2.3.1 S ...

  7. oracle web API,在Web API程序中使用Swagger做接口文档

    #### 创建Web API程序 在VS2019中创建一个ASP.NET Web应用程序,选择Web API来创建RESTful的HTTP服务项目,构选MVC和Web API核心引用. #### 安装 ...

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

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

  9. 还在用Swagger生成接口文档?我推荐你试试它.....

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 JApiDocs是一个无需额外注解.开箱即用的SpringBoot ...

最新文章

  1. 建立名称server
  2. Visual Studio 15改进C++工程加载
  3. 扩展 日历_2021少林日历 | 以最美的方式记录时光
  4. PyQt5 图形界面 - Qt Designer创建qrc资源文件引用图片资源实例演示,QTextBrower组件引用图片资源方法展示
  5. [转载][总结]函数getopt(),getopt_long及其参数optind
  6. 客户端页面不更新CSS样式或JS脚本的方法 (2018-08-17 17:33)
  7. Docker 使用 docker push 命令将镜像推送到 Docker Hub 服务器上
  8. MySQL_自定义函数
  9. HTTPS的七个误解
  10. 安卓暗黑模式软件_安卓微信暗黑模式(深色模式)怎么开启?手机什么条件才支持?...
  11. Hash算法入门指南(聊点不一样的算法人生)
  12. Super Mario HDU 4417 主席树区间查询
  13. 油猴脚本(Tampermonkey)的简介
  14. JS中的 回调函数(callback)
  15. 2021龙川隆师中学高考成绩查询入口,2021年河源中考成绩和分数线什么时候公布(附查询入口)...
  16. 计算机组成原理英语题库,北京科技大学计算机组成原理题库二十套及答案 107页...
  17. 《TCPIP网络编程(尹圣雨)》PDF+源代码+目录;文章最底下有链接
  18. int 长度 mysql_MySQL int 类型的长度和范围解惑
  19. 史诗级Java资源大全中文版
  20. Android-实现图文混排编辑

热门文章

  1. 躁动的小Z 最短路+路径记录
  2. 创客更新装备 动态规划
  3. python统计字符出现的次数最多的字符_Python统计字符串中出现次数最多的人名
  4. 修改用户名_新华美育查找用户名及修改密码的方法分享
  5. 【jetson nano】两台ubuntu ssh远程连接控制
  6. sun game server (sgs)初探
  7. MySQL数据库-笔记03【范式(1NF、2NF、3NF)、查询练习题*10道(附解析)】
  8. Android复习16【材料设计新特性:fragment、RecyclerView】
  9. Android 新闻客户端
  10. 总结一下 Android adb常用命令