2012-03-22 77 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