天天看點

php調用restful接口_PHP如何編寫RESTful接口的方法執行個體示範

本文的主要目地是為大家詳細介紹了PHP怎麼樣編寫RESTful接口的方法,詳細介紹了怎樣使用PHP編寫RESTful接口的例子,有興趣的參考一下吧。

這是一個輕量級的架構,專門為快速開發RESTful接口而設計的。要是你厭倦了使用傳統的MVC架構編寫微服務或者前後端分離的API接口,受不了為一個簡單接口而做的不少多餘的coding(和CTRL-C/CTRL-V)的話,那麼這個架構你一定會喜歡的。

先來舉一個例子:1、寫一個HelloWorld.php,放到架構指定的目錄下(預設是和index.php同級的apis/目錄)

class HelloWorld

{

public function doSomething() {

return "Hello World!";

}

}

2、在浏覽器輸入http://your-domain/hw/你将會看到:Hello World!就是這麼簡單,不需要額外配置,不需要繼承也不需要組合。

發生了什麼?回過頭看HelloWorld.php,特殊的地方在于注釋(@path,@route),不錯,架構通過注釋擷取路由資訊和綁定輸入輸出。不過别擔心性能,注釋隻會在類檔案修改以後解析一次。更多的@注釋後面再說。

再來一個更具體的例子:這是個登入接口的例子:

class Tokens

{

public function createTokenByAccounts($account, $password, &$token,&$uid){

//驗證使用者

$uid = $this->users->verifyPassword($account, $password);

Verify::isTrue($uid, new InvalidPassword($account));

$token = ...;

return ['token'=>$token, 'uid'=>$uid];

}

public $users;

}

還可以做什麼?

依賴管理(依賴注入),

自動輸出接口文檔(不是doxgen式的類、方法文檔,而是描述http接口的文檔)

接口緩存

hook

配合ezsql通路資料庫ezsql是一個簡單的面向對象的sql建構工具,提供簡單的基本sql操作。

接口

class MyClass{

public doSomething($arg0){

return Sql::select('xxx')->from('table_xxx')->where( 'xxx = ?', $arg0)->get($this->db);

}

public $db;

}

配置檔案

{

{

"MyClass":{

"properties":{

"db":"@db1"

}

},

},

"db1":{

"singleton":true,

"class":"PDO",

"pass_by_construct":true,

"properties":{

"dsn":"mysql:host=127.0.0.1;dbname=xxx",

"username":"xxxx",

"passwd":"xxxx"

}

},

}