此文章假設(shè)你已成功安裝PhalApi2項(xiàng)目,如果尚未安裝,可閱讀下載與安裝。
在PhalApi 2.x 版本中,項(xiàng)目源代碼放置在/path/to/PhalApi2/src目錄中。里面各個(gè)命名空間對應(yīng)一個(gè)子目錄,默認(rèn)命名空間是app,里面主要有Api、Domain、Model這三個(gè)目錄以及存放函數(shù)的functions.php文件。例如像是這樣的目錄結(jié)構(gòu):
./src/
└── app
├── Api
├── Domain
├── functions.php
└── Model
當(dāng)需要新增一個(gè)接口時(shí),先要在Api層添加一個(gè)新的接口文件。例如對于Hello World示例,可以使用你喜歡的編輯器創(chuàng)建一個(gè)./src/app/Api/Hello.php文件,并在里面放置以下代碼。
// 文件 ./src/app/Api/Hello.php
<?php
namespace App\Api;
use PhalApi\Api;
class Hello extends Api {
public function world() {
return array('title' => 'Hello World!');
}
}
編寫接口時(shí),需要特別注意:
App\Api
。PhalApi\Api
的子類。
通常情況下,建議可訪問的根路徑設(shè)為/path/to/PhalApi2/public。若未設(shè)置,此時(shí)接口訪問的URL格式為:接口域名/public/?s=Namespace.Class.Action
。其中,s參數(shù)用于指定待請求的接口服務(wù),由三部分組成。分別是:
組成部分 | 是否必須 | 默認(rèn)值 | 說明 |
---|---|---|---|
Namespace | 可選 | App | Api命名空間前綴,多級命名空間時(shí)用下劃線分割 |
Class | 必須 | 無 | 待請求的接口類名,通常首字母大寫 |
Action | 必須 | 無 | 待請求的接口類方法名,通常首字母大寫。若Class和Action均未指定時(shí),默認(rèn)為Site.Index |
溫馨提示:s參數(shù)為service參數(shù)的縮寫,即使用
?s=Class.Action
等效于?service=Class.Action
,兩者都存在時(shí)優(yōu)先使用service參數(shù)。
例如,上面新增的Hello World接口的訪問鏈接為:
http://dev.phalapi.net/?s=Hello.World
或者可以使用完整的寫法,帶上命名空間App:
http://dev.phalapi.net/?s=App.Hello.World
默認(rèn)情況下,接口的結(jié)果以JSON格式返回,并且返回的頂級字段有狀態(tài)碼ret、業(yè)務(wù)數(shù)據(jù)data,和錯(cuò)誤提示信息msg。其中data字段對應(yīng)接口類方法返回的結(jié)果。如Hello Wolrd示例中,返回的結(jié)果是:
{"ret":200,"data":{"title":"Hello World!"},"msg":""}
JSON可視化后是:
{
"ret": 200,
"data": {
"title": "Hello World!"
},
"msg": ""
}
更多建議: