PHP中最简单的RPC客户端方法

时间:2010-04-22 19:08:21

标签: php rest soap rpc xml-rpc

我被要求帮助朋友的公司提出一个网络应用程序。在一个条件下,我的时间非常有限,我不情愿地接受了这个请求。由于大多数逻辑都在后端进行,我建议我完成完整的后端,允许前端开发人员简单地与我的后端进行交互。

我计划在Java EE或Python(使用Pylons)中执行后端操作。在这一点上并不重要。我打算让我的后端完全准备好并经过单元测试,以便在我的工作完成后几乎不需要我的输入。

我知道他们有一个PHP程序员,但据我所知,他是一个真正的新秀。我希望他能够以最简单的方式与我的后端服务进行基本接口,而不会让他“填充”它。它基本上只是一个CRUD应用程序。

我可以通过Web服务(如XML-RPC或SOAP)实现后端。即使是RESTful API也是可能的。

然而,我的主要目标是制作一些完整的“noob”PHP程序员可以轻松地与之交互而不会混淆。我最好甚至不想和他说话,因为我的日程安排非常繁忙,做“支持电话”不是我愿意做的事情。我应该选择哪种方法?我欢迎任何建议和意见!

3 个答案:

答案 0 :(得分:5)

我个人会选择一个REST API,可能有一个JSON响应。对于简单的服务,SOAP和XML可能有点笨拙,即使是最新手的Web开发人员也理解访问基本URL的概念,即使他们没有理解REST的整体概念。有很多方法可以在PHP中使用URL,所以我相信他们能够提出一些东西,即使它是一个黑客工作而不是一个不错的客户端软件包。

我也可能选择JSON编码和解码,因为它通常相当简单,而XML解析可能会更令人生畏。

无论您选择何种格式,我都会至少写一些关于该服务的基本文档。否则你无法逃脱支持电话。您的目标消费者必须具有对他可用的远程操作的引用,或者发现这些操作的方法。在准备就绪时,可能需要10分钟来编写一些示例代码,这10分钟可以为您节省大量电子邮件。

答案 1 :(得分:2)

明确地使用类似休息的实现,并返回查询字符串格式化的输出。

请记住,php会将类似变量的数组转换为php端的数组。

获取参数的查询字符串

输入: p1=v1&p2=v2....

输出: output1=var1&output[0]=var2;output[2]=var3

在php中访问它是一个简单的

<?
   $request['myparam1'] = param; 
   ...
   $webService ="http://path.to.service?".http_build_query($request);

   parse_str(file_get_contents($webService),$response);

   // response is now an array with you response parameters in it
   // $response['responseParam1'], reponse['responseParam1'] etc
 ?>

答案 2 :(得分:2)

去过那里,做到了。

Django中的后端,由'we do pages'承包商在PHP前端。我使用JSON创建了一个类似REST的API,为他们提供了几个5行PHP函数来访问我的服务作为键值存储。

经过几次错误的开始(他们尝试了一个人为的重定向方案,而不是使用我发送的功能),他们得到了它,之后一切顺利。