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

一、安装swagger

1、首先需要有composer,没有的自行百度安装

2、下载swagger,打开网站https://packagist.org/packages/zircote/swagger-php,根据自己的php版本选择对应的版本号

2c71c05f52389c59e86a989f389c0726.png

3、安装:PhpStorm打开项目,然后在左下角

4cea22cc1bb4276e11c8e3e714784c28.png点击Terminal弹窗黑窗口

0daad06e9d51a5d1e0e2c93e0bfc44c2.png然后在里面输入:composter require zircote/swagger-php 2.0.13    回车,开始安装

4、使用,安装成功后,在CodeIgniter控制器中(/admin/application/controllers/)新建Swagger.php

/**

* Created by PhpStorm.

* User: 50364

* Date: 2018/12/20

* Time: 13:44

* api 接口文档

*/

class Swagger extends CI_Controller {

/**

* 构造函数

*

* 数据模型,扩展库,辅助方法初始化

*/

public function __construct() {

parent::__construct();

}

public function index(){

//接口php文件存放的本地路径 要找到入口文件index.php的路径 (D:/www/ci)

$openapi = swagger\scan(__DIR__);

//最后生成的json文件存放路径(例子:D:/www/ci/swagger/swagger-docs/swagger.json)

$jasonFile = __DIR__.'swagger/swagger-docs/swagger.json';

//每次自动生成json文件

file_put_contents($jasonFile,$openapi);

//加载视图

$this->load->view('swagger','');

}

}

然后创建视图文件(/admin/application/controllers/swagger.php),这里要下载(swagger-ui-master.zip,解压到相应目录,然后把dist中的index.html文件中的内容复制到swagger.php中,再把json文件路径改成自己的就可以),这样每次修改api接口注释信息的时候就会自动生成json文件

路径: 域名/swagger/swagger-docs/swagger.json

var url = "<?php echo SITE_FILE; ?>swagger/swagger-docs/swagger.json";

二、使用swagger

可以参考这篇博客内容写的还是比较全的(https://laravel-china.org/index.php/topics/7430/how-to-write-api-documents-based-on-swagger-php)

我这简单介绍下:

1、在接口控制器目录下创建/api/application/controllers/swagger.php,写API 描述信息

/*

* @SWG\Swagger(

* swagger="2.0",schemes={"https"},host="api.aa.com",basePath="/api",

* @SWG\Info(version="2.0",title="官网接口文档",description="官网2.0版本内部口文档")

* )

*/

2、在其他接口文件GIT提交

class Product ectends restful{

/*

* @SWG\Get(

* path="/product/menu/id/{id}",

* summary="产品类别列表接口",

* description="返回包含产品类别列表数据信息。",

* tags={"product"},

* @SWG\Parameter(

* name="id",

* in="path",

* default="5037",

* required=true,

* description="产品类别id",

* type="number"),

* @SWG\Response(response=200,description="OK")

* )

*/

public menu_get(){

}

}

3、Post提交

* @SWG\Post(

* path="/product/product_select",

* summary="产品选型接口",

* description="返回包含产品选型数据。",

* consumes={"application/x-www-form-urlencoded"},

* tags={"product"},

* @SWG\Parameter(

* name="id",

* in="formData",

* required=true,

* default="5037",

* description="产品栏目id",

* type="number"),

* @SWG\Parameter(

* name="type",

* in="formData",

* required=true,

* default="1",

* description="产品类型 0普通 1小众 2特殊 3与普通二级类别不同",

* type="number"),

* @SWG\Parameter(

* name="child",

* in="formData",

* default="5077",

* description="产品下级栏目id",

* type="number"),

* @SWG\Parameter(

* name="searchIds",

* in="formData",

* required=false,

* description="选型数据:10951,10961,10971",

* default="",

* type="string"

* ),

* @SWG\Response(response=200,description="OK")

* )

d2940f59a79757bfb840de573459b196.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值