如何构建REST API


How to build 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(可能带参数)做的事情。

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

使用服务

最后要做的是通过HTTP进行通信。您从REST服务(例如http:://yoursite)请求一个资源。Tld/user/id1, http://yoursite.tld/user?id=1等,以正常方式获取用户1。不管是Curl, wget,还是java http object,只要做一个http请求。更改用户也是如此(您可以想象在这里使用POST)。

创建服务

就像一个网站一样,你可以通过创建任何可以解析这些请求并发回信息的东西来创建服务。问题是,没有像SOAP那样的中心方法/WSDL等(REST的优点和缺点都有)。只要确保在请求完成时可以提供数据,可以为每个请求提供一个特殊的文件,一个重定向请求的中心索引,一些。htaccess重定向技巧。

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