2012-03-22 82 views
3

我想在PHP中創建一個可供不同消費者(網頁,Android設備,iOS設備)使用的Web服務。在PHP中創建Web服務

我來自微軟的背景,所以我很容易在C#中如何做。理想情況下,我希望能夠提供可以發送JSON的REST服務。

你能告訴我如何在PHP中實現這個功能嗎?

感謝

塔裏克

+0

從那裏你會被獲取數據在你的PHP應用程序將返回JSON?它會來自MySQL數據庫嗎? – anubhava 2012-03-22 08:02:01

+0

不贊成投票問題是合法的,如果你發現問題有任何的差異,請告訴他,但直接投票是不好主意 – 2012-03-22 08:04:29

回答

0

我建議你去爲Yii這是值得學習的。你可以很容易地在此建立它。 Web Service。 Yii提供了CWebServiceCWebServiceAction來簡化在Web應用程序中實現Web服務的工作。 Web服務依賴於SOAP作爲其通信協議棧的基礎層。

+0

謝謝。我會看看框架 – Tariq 2012-03-22 10:30:14

0

PHP中最簡單的方法是使用GET/POST作爲數據輸入,並使用echo作爲數據輸出。 下面是一個示例:

<?php if(empty($_GET['method'])) die('no method specified'); 
switch($_GET['method']){ 
    case 'add': { 
     if(empty($_GET['a']) || empty($_GET['b'])) die("Please provide two numbers. "); 
     if(!is_numeric($_GET['a']) || !is_numeric($_GET['b'])) die("Those aren't numbers, please provide numbers. "); 
     die(''.($_GET['a']+$_GET['b'])); 
     break; 
    } 
} 

保存爲test.php的,去http://localhost/test.php?method=add&a=2&b=3(或任何你的服務器是),它應該說5

0

PHP確實對SOAP服務器有本地支持(The SoapServer class manual顯示它),我發現它非常易於使用。

如果使用框架,創建REST風格的API非常簡單。我不想討論哪個框架更好,但CakePHP也支持XML格式的輸出,我非常肯定其他人也會這樣。

如果您來自微軟的背景,只需要小心思考「數據集」。他們是一個非常具體的微軟事物,過去一直是我的詛咒。這可能不會成爲你的問題,但你可能想看到微軟和開放實現之間的差異。

當然PHP有一個本地json_encode()函數。

+0

謝謝。這對我來說是一個很好的開端。我開始研究框架並碰到了FRAPI,但似乎並沒有積極開發。我會看看CakePHP – Tariq 2012-03-22 10:28:57

+0

很高興我能提供幫助。隨時upvote或接受答案:p – Andy 2012-03-22 10:35:01

7

我開發了一個類,它是PHP本地SoapServer類'REST等價物。

您只需包含RestServer.php文件,然後按如下所示使用它。

class Hello 
{ 
    public static function sayHello($name) 
    { 
    return "Hello, " . $name; 
    } 
} 

$rest = new RestServer(Hello); 
$rest->handle(); 

然後,你可以這樣從另一種語言撥打電話:

http://myserver.com/path/to/api?method=sayHello&name=World 

(請注意,它無關緊要什麼順序在查詢字符串提供了PARAMS此外,帕拉姆鍵名。以及方法名稱不區分大小寫。)

Get it here

+0

+1 - 非常好的實施傑克 – 2012-12-19 20:19:32

+0

謝謝!我最近在GitHub上發佈了RestServer類,並做了一些進一步的改進! (上面的鏈接將帶你到我的博客文章關於它與GitHub鏈接) – 2012-12-31 04:53:00

+0

不錯..它可以 – Rinzler 2013-03-01 08:31:35