我是 REST 新手。我了解 PHP SOAP Web 服务。我们有一个 SOAP 服务器 PHP 文件,它具有所有功能和一个 WSDL 文件描述功能和参数。然后客户端可以在任何地方通过 wsdl 文件从他的代码与 SOAP 服务器进行通信。
就像这个问题的连续方式一样,请告诉 REST 是如何变成的?服务器文件可能是什么以及客户端如何与 REST 服务器通信?使用curl或任何其他方式?给我一些示例代码更好地理解。
提前致谢。
$service_url = 'http://example.com/rest/user/';
$curl = curl_init($service_url);
$curl_post_data = array(
"user_id" => 42,
"emailaddress" => 'lorna@example.com',
);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);
$curl_response = curl_exec($curl);
curl_close($curl);
现在如果需要 xml 响应然后试试这个
$xml = new SimpleXMLElement($curl_response);
或在 json
$json = json_encode($curl_response);
我不太确定你想得到什么,而不是你链接的问题。
REST 服务器的问题在于,您可以开始将其理解为一组执行操作的 URL(可能带有参数)。
东西是通过检索数据、插入记录等来定义的。参数可以是 GET 参数或 POST 参数,使用 HTTP 定义中的标准。
你最终所做的是通过 HTTP 进行通信。您可以以通常的方式从 REST 服务请求资源(例如 http:://yoursite.tld/user/id1、http ://yoursite.tld/user?id=1等以获取用户 1)。无论是 Curl,还是 wget,还是 java http 对象,只要做一个 HTTP 请求。更改该用户也是如此(您可以想象在此处使用 POST)。
就像网站一样,您可以通过创建任何可以解析这些请求并发送回信息的东西来提供服务。问题是,没有像 SOAP 那样的中心方法/WSDL 等(REST 的优点和缺点)。只要确保您可以在请求完成时提供数据,无论是每个请求都有一个特殊文件,一个重定向您的请求的中央索引,一些 .htaccess 重定向技巧。
一个简单的方法是使用框架或您自己制定的一些标准。你可以把你的请求想象/yourCommand/yourMode/yourData
成第一部分告诉你的系统要调用什么函数/对象/文件,然后模式告诉它要做什么,最后是你需要的数据(例如用户的 ID)。您的请求可能看起来像/user/get/1
检索用户。