php怎么根据接口文档实现功能,CodeIgniter+swagger实现 PHP API接口文档自动生成功能...
一、安裝swagger
1、首先需要有composer,沒有的自行百度安裝
2、下載swagger,打開網站https://packagist.org/packages/zircote/swagger-php,根據自己的php版本選擇對應的版本號
3、安裝:PhpStorm打開項目,然后在左下角
點擊Terminal彈窗黑窗口
然后在里面輸入: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")
* )
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的php怎么根据接口文档实现功能,CodeIgniter+swagger实现 PHP API接口文档自动生成功能...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iis php配置内部错误,iis 50
- 下一篇: python typeerror con