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