如何构建REST API?
我是REST的新手。我对PHP SOAP Web服务有所了解。 在那里我们有一个SOAP服务器PHP文件,它具有所有的功能和一个WSDL文件来描述函数和参数。 然后,客户端可以通过wsdl文件从任何地方的代码与SOAP服务器通信。
像这个问题一样,请告诉REST如何成为? 服务器文件可能是什么,客户端如何与REST服务器通信? 使用卷曲还是其他方式? 给我一些更好理解的示例代码。
提前致谢。
$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
来检索用户。