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