Swagger 生成 PHP API 接口文档
Swagger 生成 PHP API 接口文档
1、概况
有同学反馈写几十个接口文档需要两天的工作量, 随着多部门之间的协作越来越频繁, 维护成本越来越高, 文档的可维护性越来越差, 需要一个工具来管理这些接口的文档, 并能够充当mock server给调用方使用。
有同学推荐了swagger+easymock,Swagger是一个简单但功能强大的API表达工具。 这里介绍使用swagger-php生成PHP API文档的方法。
2、安装与使用
2.1 安装swagger-php包
git clone https://github.com/zircote/swagger-php.git
composer 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: userId
in: query
description: 用户ID
required: true
schema:
type: string
responses:
'200':
description: 'An example resource'
3、展示
git clone https://github.com/swagger-api/swagger-ui.git
composer 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文档不完全指南
原文地址:https://segmentfault.com/a/1190000016735909
Swagger 生成 PHP API 接口文档的更多相关文章
- 整合swagger2生成Restful Api接口文档
整合swagger2生成Restful Api接口文档 swagger Restful文档生成工具 2017-9-30 官方地址:https://swagger.io/docs/specificati ...
- Asp.Net Core2.0 WebAPI 使用Swagger生成漂亮的接口文档
1.引用NuGet: Swashbuckle.AspNetCore.Swagger Swashbuckle.AspNetCore.SwaggerGen 或 <PackageReference I ...
- 自动生成web api接口文档
然后打开web程序,访问ip:port/Help. 为什么可以直接输入Help就能访问呢,因为这个插件本身已经配置了路径,如下. public class HelpPageAreaRegistrati ...
- spring boot使用swagger生成api接口文档
前言 在之前的文章中,使用mybatis-plus生成了对应的包,在此基础上,我们针对项目的api接口,添加swagger配置和注解,生成swagger接口文档 具体可以查看本站spring boot ...
- Swagger解决你手写API接口文档的痛
首先,老规矩,我们在接触新事物的时候, 要对之前学习和了解过的东西做一个总结. 01 痛 苦 不做.不行 之前,前后端分离的系统由前端和后端不同的编写,我们苦逼的后端工程师会把自己已经写完的A ...
- SpringBoot + Swagger2 自动生成API接口文档
spring-boot作为当前最为流行的Java web开发脚手架,相信越来越多的开发者会使用其来构建企业级的RESTFul API接口.这些接口不但会服务于传统的web端(b/s),也会服务于移动端 ...
- Api接口文档管理工具,你知道哪些呢?
上周看到有人在我的Github开源项目中提了个issue,说是否考虑接入swagger.那今天我就用swagger与其他接口文档工具做对比,同时说说Api接口文档工具的那点事.如今,在前后端分离开发的 ...
- 构建标准OpenStack API接口文档
1.构建API接口文档标准参考: http://docs.openstack.org/contributor-guide/api-guides.html 2.构建API接口文档步骤参考下面的Patch ...
- api(接口)文档管理工具
api(接口)文档管理工具 欢迎光临:博之阅API管理平台 ,做为一个app开发者,还没有用到api管理工具,你就OUT了 点击进入:程序员精华博客大全
随机推荐
- data is not None
在读django的form源码: def __init__(self, data=None, files=None, auto_id='id_%s', prefix=None, initial=Non ...
- HDU 5289 Assignment [优先队列 贪心]
HDU 5289 - Assignment http://acm.hdu.edu.cn/showproblem.php?pid=5289 Tom owns a company and he is th ...
- MySQL 数据备份与还原 转载
MySQL 数据备份与还原 一.数据备份 1.使用mysqldump命令备份 mysqldump命令将数据库中的数据备份成一个文本文件.表的结构和表中的数据将存储在生成的文本文件中. mysqldum ...
- ASP.NET-MVC中Entity和Model之间的关系
Entity 与 Model之间的关系图 ViewModel类是MVC中与浏览器交互的,Entity是后台与数据库交互的,这两者可以在MVC中的model类中转换 MVC基础框架 来自为知笔记(Wiz ...
- ZJOI—— 密码机(2003)
ZJOI2003密码机,没找到可以测试的网站,就只过了样例~~ 题目描述 一台密码机按照以下的方式产生密码:首先往机器中输入一系列数,然后取出其中一部分数,将它们异或以后得到一个新数作为密码.现在请你 ...
- CF16A Flag
CF16A Flag 题意翻译 题目描述 根据一项新的ISO标准,每一个国家的国旗应该是一个n×m的格子场,其中每个格子最多有10种不同的颜色.并且国旗应该有条纹:旗帜的每一行应包含相同颜色的方块,相 ...
- 【网络协议】TCP协议简单介绍
本文仅仅是对TCP协议做个简要的介绍. TCP协议,即传输控制协议.与UDP协议同处于传输层,相同使用相同的网络层,但TCP提供了一种可靠的.面向连接的传输数据服务,它会在两个使用TC ...
- ZOJ 3829 模拟贪心
2014牡丹江现场赛水题 给出波兰式,推断其是否合法.假设不合法有两种操作: 1:任何位置加一个数字或者操作符 2:随意两个位置的元素对调 贪心模拟就可以 先推断数字数是否大于操作符数,若不大于 an ...
- JSP简单练习-上传文件
注意:在编写上传文件的代码时,需确保"WEB-INF/lib"下含有jspsmartupload.jar包.否则会出错. jspSmartupload.jar下载 <!-- ...
- 蚁视新家show,小伙伴们快来增加有范儿有爱的蚁视大家庭吧!
蚁视搬新家啦.新家在学院路上,离中关村非常近.离宇宙的中心非常近,离好多同学也非常近有木有! 新家绝对是超级创客范儿,绝对理想中的工作环境有木有!愿意增加蚁视的小伙伴们.快快来吧! 以下是蚁视新办公室 ...