【发布时间】:2011-01-11 19:37:52
【问题描述】:
不是真正的 PHP 开发人员,但我有 PHP 托管,并想在其上创建一个 PHP Web 服务以供 .NET 客户端使用,我正在考虑将 WSDL 与 NUSoap 一起使用。
或
一个更现代的解决方案是使用 OData,我不确定它是否会更容易。哪个更容易?
【问题讨论】:
不是真正的 PHP 开发人员,但我有 PHP 托管,并想在其上创建一个 PHP Web 服务以供 .NET 客户端使用,我正在考虑将 WSDL 与 NUSoap 一起使用。
或
一个更现代的解决方案是使用 OData,我不确定它是否会更容易。哪个更容易?
【问题讨论】:
对于 c# 开发人员来说,最简单的方法是使用 WSDL 开发一个肥皂服务。用php创建服务会很痛苦。
更好的选择是创建一个使用 JSON 进行通信的 REST Web 服务。它需要一个bit more code on the client side,但在其他平台上会更容易使用,并且可以在 php 中快速开发。
这是一个非常简单的 php REST-JSON Web 服务器示例。
function finder($person)
{
$data = array();
$data['sue']['full_name'] = 'Sue Thompson';
$data['sue']['location']['city'] = 'San Francisco';
$data['sue']['location']['state'] = 'California';
$data['jack']['full_name'] = 'Jack Black';
$data['jack']['location']['city'] = 'San Anselmo';
$data['jack']['location']['state'] = 'California';
if (!isset($data[$person))
{
return $data[$person];
}
else
{
// make sure you document this
return array('error' => "An error has occured");
}
}
// you can take parameters as url query strings or as json.
// if your input is simple, query strings are easier.
$person = $_GET['person'];
echo json_encode(finder($person));
【讨论】:
看在上帝的份上,请不要使用 SOAP。太可怕了,太可怕了。
使用 REST(或至少 GET 和 POST)和 JSON。轻松多了。
见SOAP or REST for Web Services?
更新:我最初反对 XML,但它有它的位置。 JSON 更好(不那么冗长)。
【讨论】:
在这个网站上有很好的解释:http://wso2.org/library/3393
【讨论】: