CodeIgniter + Swagger
====
###### tags: `CMRDB`, `行雲身份證`, `網頁`, `筆記`
> [name=Yi Rong Wu]
> [time=Tue, Aug 20, 2019]
:::info
環境: windows、XAMPP
:::
1. 下載CodeIgniter
2. 建資料夾`YourProject/swagger/`
3. 下載[Swagger UI](https://github.com/swagger-api/swagger-ui),解壓縮,將`dist/`資料夾裡的檔案全搬到`YourProject/swagger/`
![](https://i.imgur.com/0EWDVWW.png =200x)
4. 安裝
```shell
composer require zircote/swagger-php:2.*
```
5. 有需要的話,安裝
```shell
composer require darkaonline/l5-swagger
```
6. 建立Controller(Member)
6. 加上一些註解 swg annotation
一份專案裡至少需要一個`@SWG\Info`的註解
```php
/**
* 这里需要一个主`Swagger`定义:
* @SWG\Swagger(
* @SWG\Info(
* title="我的`Swagger`API文檔",
* version="1.0.0"
* )
* )
*/
```
7. 加上一些方法和註解
```php
/**
* @SWG\Post(
* path="/YourProject/index.php/Member/login",
* tags={"會員功能"},
* summary="登入",
* @SWG\Parameter(
* in="query",
* name="account",
* type="string",
* description="帳號",
* required=true,
* ),
* @SWG\Parameter(
* in="query",
* name="password",
* type="string",
* description="密碼",
* required=true,
* ),
* @SWG\Response(response="default", description="操作成功")
* )
*
*/
public function login()
{
echo '{"msg":"hello world"}';
}
```
8. 下指令生成API 文件檔(json格式)
路徑和檔名可以自行調整
:::info
php [swagger程式位置] [Controller資料夾(需要掃描的資料夾)] -o [api文件生成位置]
:::
```shell
php /xampp/htdocs/YourProject/vendor/zircote/swagger-php/bin/swagger /xampp/htdocs/YourProject/application/controllers -o \xampp\htdocs\YourProject\api_doc.json
```
4. 修改`YourProject/swagger/index.html`
改成你的api文件位置
http://127.0.0.1/YourProject/api_doc.json
![](https://i.imgur.com/bEPBYmJ.png)
1. 瀏覽 http://127.0.0.1/Swagger_CodeIgniter/swagger/
==沒更新的話,用無痕瀏覽==
![](https://i.imgur.com/BM0fNQi.png)