如何构建REST API?

时间:2013-04-04 06:56:53

标签: php rest curl

我是REST新手。我对PHP SOAP Web服务有所了解。我们有一个SOAP服务器PHP文件,它具有所有功能,WSDL文件描述了函数和参数。然后,客户端可以通过wsdl文件从他的代码中任意位置与SOAP服务器进行通信。

就像从this问题那样持续的方式请告诉REST如何成为?什么是服务器文件以及客户端如何与REST服务器通信?使用curl或任何其他方式?给我一些示例代码,以便更好地理解。

提前致谢。

2 个答案:

答案 0 :(得分:0)

  $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);

答案 1 :(得分:0)

我不确定你想要的是什么,而不是你所关联的问题。

使用REST服务器的事情是,您可以开始将其理解为一堆URLS(可能带有参数)来做事。

通过检索数据,插入记录等来定义东西。参数可以是GET参数或POST参数,使用HTTP定义中的标准。

使用服务

你最后做的是通过HTTP进行通信。您可以通过REST服务(例如http :: //yoursite.tld/user/id1, http://yoursite.tld/user?id=1等)以任何方式请求资源(例如http :: //yoursite.tld/user/id1, {{3}}等)。是它的卷曲,不管是wget,不管是java http对象,只需要做一个HTTP请求。改变那个用户也是如此(你可以想象在这里使用POST)。

制作服务

就像网站一样,您可以通过创建任何可以解析这些请求的内容来发送服务,并发回信息。也就是说,SOAP中没有中心方法/ WSDL等(REST的优点和缺点)。只需确保您可以在请求完成后提供数据,包括每个请求的特殊文件,重定向请求的中央索引,以及.htaccess重定向欺骗。

一种简单的方法是使用框架或您自己制定的标准。你可以想象你的请求看起来像/yourCommand/yourMode/yourData,其中第一部分告诉你的系统要调用哪个函数/对象/文件,然后模式告诉它要做什么,最后数据是你需要的(例如ID)用户)。您的请求可能看起来像/user/get/1来检索用户。